diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/iser/debian/changelog doca-ofed-3.4-dkms-3.4.1+1.1.0.0/iser/debian/changelog
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/iser/debian/changelog	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/iser/debian/changelog	2026-07-16 14:55:59.000000000 +0200
@@ -1,4 +1,4 @@
-iser (26.04.OFED.26.04.0.8.5.1-1) unstable; urgency=low
+iser (26.04.OFED.26.04.1.1.0.1-1) unstable; urgency=low
 
   * Initial release.
 
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/iser/iser.spec doca-ofed-3.4-dkms-3.4.1+1.1.0.0/iser/iser.spec
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/iser/iser.spec	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/iser/iser.spec	2026-07-16 14:55:59.000000000 +0200
@@ -28,7 +28,7 @@
 
 %{!?_name: %global _name iser}
 %{!?_version: %global _version 26.04}
-%{!?_release: %global _release OFED.26.04.0.8.5.1}
+%{!?_release: %global _release OFED.26.04.1.1.0.1}
 %global dkms_version %{version}-%{_release}
 
 %bcond_with building_kmods
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/isert/debian/changelog doca-ofed-3.4-dkms-3.4.1+1.1.0.0/isert/debian/changelog
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/isert/debian/changelog	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/isert/debian/changelog	2026-07-16 14:55:59.000000000 +0200
@@ -1,4 +1,4 @@
-isert (26.04.OFED.26.04.0.8.5.1-1) unstable; urgency=low
+isert (26.04.OFED.26.04.1.1.0.1-1) unstable; urgency=low
 
   * Initial release.
 
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/isert/isert.spec doca-ofed-3.4-dkms-3.4.1+1.1.0.0/isert/isert.spec
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/isert/isert.spec	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/isert/isert.spec	2026-07-16 14:55:59.000000000 +0200
@@ -28,7 +28,7 @@
 
 %{!?_name: %global _name isert}
 %{!?_version: %global _version 26.04}
-%{!?_release: %global _release OFED.26.04.0.8.5.1}
+%{!?_release: %global _release OFED.26.04.1.1.0.1}
 %global dkms_version %{version}-%{_release}
 
 %bcond_with building_kmods
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-nfsrdma/debian/changelog doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-nfsrdma/debian/changelog
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-nfsrdma/debian/changelog	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-nfsrdma/debian/changelog	2026-07-16 14:55:59.000000000 +0200
@@ -1,4 +1,4 @@
-mlnx-nfsrdma (26.04.OFED.26.04.0.8.5.1-1) unstable; urgency=low
+mlnx-nfsrdma (26.04.OFED.26.04.1.1.0.1-1) unstable; urgency=low
 
   * Initial release.
 
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-nfsrdma/mlnx-nfsrdma.spec doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-nfsrdma/mlnx-nfsrdma.spec
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-nfsrdma/mlnx-nfsrdma.spec	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-nfsrdma/mlnx-nfsrdma.spec	2026-07-16 14:55:59.000000000 +0200
@@ -28,7 +28,7 @@
 
 %{!?_name: %global _name mlnx-nfsrdma}
 %{!?_version: %global _version 26.04}
-%{!?_release: %global _release OFED.26.04.0.8.5.1}
+%{!?_release: %global _release OFED.26.04.1.1.0.1}
 %global dkms_version %{version}-%{_release}
 
 %bcond_with building_kmods
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-nvme/debian/changelog doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-nvme/debian/changelog
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-nvme/debian/changelog	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-nvme/debian/changelog	2026-07-16 14:55:59.000000000 +0200
@@ -1,4 +1,4 @@
-mlnx-nvme (26.04.OFED.26.04.0.8.5.1-1) unstable; urgency=low
+mlnx-nvme (26.04.OFED.26.04.1.1.0.1-1) unstable; urgency=low
 
   * Initial release.
 
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-nvme/mlnx-nvme.spec doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-nvme/mlnx-nvme.spec
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-nvme/mlnx-nvme.spec	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-nvme/mlnx-nvme.spec	2026-07-16 14:55:59.000000000 +0200
@@ -28,7 +28,7 @@
 
 %{!?_name: %global _name mlnx-nvme}
 %{!?_version: %global _version 26.04}
-%{!?_release: %global _release OFED.26.04.0.8.5.1}
+%{!?_release: %global _release OFED.26.04.1.1.0.1}
 %global dkms_version %{version}-%{_release}
 
 %bcond_with building_kmods
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/backports/0024-BACKPORT-drivers-infiniband-core-umem.c.patch doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/backports/0024-BACKPORT-drivers-infiniband-core-umem.c.patch
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/backports/0024-BACKPORT-drivers-infiniband-core-umem.c.patch	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/backports/0024-BACKPORT-drivers-infiniband-core-umem.c.patch	2026-07-16 14:55:59.000000000 +0200
@@ -2,8 +2,8 @@
 Subject: [PATCH] BACKPORT: drivers/infiniband/core/umem.c
 
 ---
- drivers/infiniband/core/umem.c | 311 ++++++++++++++++++++++++++++++++-
- 1 file changed, 307 insertions(+), 4 deletions(-)
+ drivers/infiniband/core/umem.c | 315 ++++++++++++++++++++++++++++++++-
+ 1 file changed, 311 insertions(+), 4 deletions(-)
 
 diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c
 index xxxxxxx..xxxxxxx 100644
@@ -88,7 +88,7 @@
  }
  
  /**
-@@ -99,6 +142,7 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
+@@ -102,6 +145,7 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
  
  	umem->iova = va = virt;
  
@@ -96,7 +96,7 @@
  	if (umem->is_odp) {
  		unsigned int page_size = BIT(to_ib_umem_odp(umem)->page_shift);
  
-@@ -107,6 +151,7 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
+@@ -110,12 +154,17 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
  			return 0;
  		return page_size;
  	}
@@ -104,7 +104,17 @@
  
  	/* The best result is the smallest page size that results in the minimum
  	 * number of required pages. Compute the largest page size that could
-@@ -118,11 +163,16 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
+ 	 * work based on VA address bits that don't change.
+ 	 */
++#ifdef HAVE_CHECK_ADD_OVERFLOW_MIXED_TYPES
+ 	if (check_add_overflow(umem->length - 1, virt, &last_va))
++#else
++	if (check_add_overflow((u64)umem->length - 1, virt, &last_va))
++#endif
+ 		return 0;
+ 	bits = bits_per(virt ^ last_va);
+ 	if (bits < BITS_PER_LONG)
+@@ -124,11 +173,16 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
  	/* offset into first SGL */
  	pgoff = umem->address & ~PAGE_MASK;
  
@@ -122,7 +132,7 @@
  		    end != sg_dma_address(sg)) {
  
  			curr_base = sg_dma_address(sg);
-@@ -156,6 +206,64 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
+@@ -162,6 +216,64 @@ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
  }
  EXPORT_SYMBOL(ib_umem_find_best_pgsz);
  
@@ -187,7 +197,7 @@
  /**
   * __ib_umem_get - Pin and DMA map userspace memory.
   *
-@@ -165,20 +273,55 @@ EXPORT_SYMBOL(ib_umem_find_best_pgsz);
+@@ -171,20 +283,55 @@ EXPORT_SYMBOL(ib_umem_find_best_pgsz);
   * @access: IB_ACCESS_xxx flags for memory being pinned
   * @peer_mem_flags: IB_PEER_MEM_xxx flags for memory being used
   */
@@ -243,7 +253,7 @@
  
  	/*
  	 * If the combination of the addr and size requested for this memory
-@@ -201,7 +344,11 @@ static struct ib_umem *__ib_umem_get(struct ib_device *device,
+@@ -207,7 +354,11 @@ static struct ib_umem *__ib_umem_get(struct ib_device *device,
  	umem = kzalloc(sizeof(*umem), GFP_KERNEL);
  	if (!umem)
  		return ERR_PTR(-ENOMEM);
@@ -255,7 +265,7 @@
  	umem->length     = size;
  	umem->address    = addr;
  	/*
-@@ -218,7 +365,6 @@ static struct ib_umem *__ib_umem_get(struct ib_device *device,
+@@ -224,7 +375,6 @@ static struct ib_umem *__ib_umem_get(struct ib_device *device,
  		ret = -ENOMEM;
  		goto umem_kfree;
  	}
@@ -263,7 +273,7 @@
  	npages = ib_umem_num_pages(umem);
  	if (npages == 0 || npages > UINT_MAX) {
  		ret = -EINVAL;
-@@ -229,6 +375,7 @@ static struct ib_umem *__ib_umem_get(struct ib_device *device,
+@@ -235,6 +385,7 @@ static struct ib_umem *__ib_umem_get(struct ib_device *device,
  
  	new_pinned = atomic64_add_return(npages, &mm->pinned_vm);
  	if (new_pinned > lock_limit && !capable(CAP_IPC_LOCK)) {
@@ -271,7 +281,7 @@
  		atomic64_sub(npages, &mm->pinned_vm);
  		ret = -ENOMEM;
  		goto out;
-@@ -236,22 +383,46 @@ static struct ib_umem *__ib_umem_get(struct ib_device *device,
+@@ -242,22 +393,46 @@ static struct ib_umem *__ib_umem_get(struct ib_device *device,
  
  	cur_base = addr & PAGE_MASK;
  
@@ -319,7 +329,7 @@
  			goto umem_release;
  		}
  
-@@ -279,8 +450,115 @@ static struct ib_umem *__ib_umem_get(struct ib_device *device,
+@@ -285,8 +460,115 @@ static struct ib_umem *__ib_umem_get(struct ib_device *device,
  	}
  	goto out;
  
@@ -435,7 +445,7 @@
  
  	/*
  	 * If the address belongs to peer memory client, then the first
-@@ -312,19 +590,36 @@ umem_kfree:
+@@ -318,19 +600,36 @@ umem_kfree:
  	return ret ? ERR_PTR(ret) : umem;
  }
  
@@ -472,7 +482,7 @@
  }
  EXPORT_SYMBOL(ib_umem_get_peer);
  
-@@ -336,10 +631,14 @@ void ib_umem_release(struct ib_umem *umem)
+@@ -342,10 +641,14 @@ void ib_umem_release(struct ib_umem *umem)
  {
  	if (!umem)
  		return;
@@ -487,7 +497,7 @@
  
  	if (umem->is_peer)
  		return ib_peer_umem_release(umem);
-@@ -373,8 +672,12 @@ int ib_umem_copy_from(void *dst, struct ib_umem *umem, size_t offset,
+@@ -379,8 +682,12 @@ int ib_umem_copy_from(void *dst, struct ib_umem *umem, size_t offset,
  		return -EINVAL;
  	}
  
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/backports/0071-BACKPORT-drivers-net-ethernet-mellanox-mlx5-core-dpl.patch doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/backports/0071-BACKPORT-drivers-net-ethernet-mellanox-mlx5-core-dpl.patch
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/backports/0071-BACKPORT-drivers-net-ethernet-mellanox-mlx5-core-dpl.patch	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/backports/0071-BACKPORT-drivers-net-ethernet-mellanox-mlx5-core-dpl.patch	2026-07-16 14:55:59.000000000 +0200
@@ -2,8 +2,8 @@
 Subject: [PATCH] BACKPORT: drivers/net/ethernet/mellanox/mlx5/core/dpll.c
 
 ---
- .../net/ethernet/mellanox/mlx5/core/dpll.c    | 96 +++++++++++++++++--
- 1 file changed, 88 insertions(+), 8 deletions(-)
+ .../net/ethernet/mellanox/mlx5/core/dpll.c    | 117 ++++++++++++++++--
+ 1 file changed, 106 insertions(+), 11 deletions(-)
 
 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/dpll.c b/drivers/net/ethernet/mellanox/mlx5/core/dpll.c
 index xxxxxxx..xxxxxxx 100644
@@ -28,7 +28,7 @@
  	enum mlx5_msees_admin_status admin_status;
  	enum mlx5_msees_oper_status oper_status;
  	bool ho_acq;
-+#ifdef HAVE_DPLL_PIN_OPS_HAS_FFO_GET
++#if defined(HAVE_DPLL_PIN_OPS_HAS_FFO_GET) || defined(HAVE_DPLL_PIN_OPS_FFO_GET_PARAM)
  	bool oper_freq_measure;
 -	enum mlx5_msees_failure_reason failure_reason;
  	s32 frequency_diff;
@@ -41,7 +41,7 @@
  	synce_status->admin_status = MLX5_GET(msees_reg, out, admin_status);
  	synce_status->oper_status = MLX5_GET(msees_reg, out, oper_status);
  	synce_status->ho_acq = MLX5_GET(msees_reg, out, ho_acq);
-+#ifdef HAVE_DPLL_PIN_OPS_HAS_FFO_GET
++#if defined(HAVE_DPLL_PIN_OPS_HAS_FFO_GET) || defined(HAVE_DPLL_PIN_OPS_FFO_GET_PARAM)
  	synce_status->oper_freq_measure = MLX5_GET(msees_reg, out, oper_freq_measure);
 -	synce_status->failure_reason = MLX5_GET(msees_reg, out, failure_reason);
  	synce_status->frequency_diff = MLX5_GET(msees_reg, out, frequency_diff);
@@ -54,12 +54,12 @@
  
  	MLX5_SET(msees_reg, in, field_select,
  		 MLX5_MSEES_FIELD_SELECT_ENABLE |
-+#ifdef HAVE_DPLL_PIN_OPS_HAS_FFO_GET
++#if defined(HAVE_DPLL_PIN_OPS_HAS_FFO_GET) || defined(HAVE_DPLL_PIN_OPS_FFO_GET_PARAM)
  		 MLX5_MSEES_FIELD_SELECT_ADMIN_FREQ_MEASURE |
 +#endif
  		 MLX5_MSEES_FIELD_SELECT_ADMIN_STATUS);
  	MLX5_SET(msees_reg, in, admin_status, admin_status);
-+#ifdef HAVE_DPLL_PIN_OPS_HAS_FFO_GET
++#if defined(HAVE_DPLL_PIN_OPS_HAS_FFO_GET) || defined(HAVE_DPLL_PIN_OPS_FFO_GET_PARAM)
  	MLX5_SET(msees_reg, in, admin_freq_measure, true);
 +#endif
  	return mlx5_core_access_reg(mdev, in, sizeof(in), out, sizeof(out),
@@ -85,7 +85,7 @@
  	       DPLL_PIN_STATE_CONNECTED : DPLL_PIN_STATE_DISCONNECTED;
  }
  
-+#ifdef HAVE_DPLL_PIN_OPS_HAS_FFO_GET
++#if defined(HAVE_DPLL_PIN_OPS_HAS_FFO_GET) || defined(HAVE_DPLL_PIN_OPS_FFO_GET_PARAM)
  static int
  mlx5_dpll_pin_ffo_get(struct mlx5_dpll_synce_status *synce_status,
  		      s64 *ffo)
@@ -143,31 +143,54 @@
  };
  
  static int mlx5_dpll_pin_direction_get(const struct dpll_pin *pin,
-@@ -296,6 +328,7 @@ static int mlx5_dpll_state_on_dpll_set(const struct dpll_pin *pin,
+@@ -296,9 +328,11 @@ static int mlx5_dpll_state_on_dpll_set(const struct dpll_pin *pin,
  					  MLX5_MSEES_ADMIN_STATUS_FREE_RUNNING);
  }
  
-+#ifdef HAVE_DPLL_PIN_OPS_HAS_FFO_GET
++#ifdef HAVE_DPLL_PIN_OPS_FFO_GET_PARAM
  static int mlx5_dpll_ffo_get(const struct dpll_pin *pin, void *pin_priv,
- 			     const struct dpll_device *dpll, void *dpll_priv,
- 			     s64 *ffo, struct netlink_ext_ack *extack)
-@@ -309,12 +342,15 @@ static int mlx5_dpll_ffo_get(const struct dpll_pin *pin, void *pin_priv,
+-			     const struct dpll_device *dpll, void *dpll_priv,
+-			     s64 *ffo, struct netlink_ext_ack *extack)
++                             const struct dpll_device *dpll, void *dpll_priv,
++                             struct dpll_ffo_param *ffo,
++                             struct netlink_ext_ack *extack)
+ {
+ 	struct mlx5_dpll_synce_status synce_status;
+ 	struct mlx5_dpll *mdpll = pin_priv;
+@@ -307,14 +341,31 @@ static int mlx5_dpll_ffo_get(const struct dpll_pin *pin, void *pin_priv,
+ 	err = mlx5_dpll_synce_status_get(mdpll->mdev, &synce_status);
+ 	if (err)
  		return err;
- 	return mlx5_dpll_pin_ffo_get(&synce_status, ffo);
+-	return mlx5_dpll_pin_ffo_get(&synce_status, ffo);
++	return mlx5_dpll_pin_ffo_get(&synce_status, &ffo->ffo);
  }
++#elif defined(HAVE_DPLL_PIN_OPS_HAS_FFO_GET)
++static int mlx5_dpll_ffo_get(const struct dpll_pin *pin, void *pin_priv,
++                             const struct dpll_device *dpll, void *dpll_priv,
++                             s64 *ffo, struct netlink_ext_ack *extack)
++{
++        struct mlx5_dpll_synce_status synce_status;
++        struct mlx5_dpll *mdpll = pin_priv;
++        int err;
++
++        err = mlx5_dpll_synce_status_get(mdpll->mdev, &synce_status);
++        if (err)
++		return err;
++	return mlx5_dpll_pin_ffo_get(&synce_status, ffo);
++ }
 +#endif
  
  static const struct dpll_pin_ops mlx5_dpll_pins_ops = {
  	.direction_get = mlx5_dpll_pin_direction_get,
  	.state_on_dpll_get = mlx5_dpll_state_on_dpll_get,
  	.state_on_dpll_set = mlx5_dpll_state_on_dpll_set,
-+#ifdef HAVE_DPLL_PIN_OPS_HAS_FFO_GET
++#if defined(HAVE_DPLL_PIN_OPS_HAS_FFO_GET) || defined(HAVE_DPLL_PIN_OPS_FFO_GET_PARAM)
  	.ffo_get = mlx5_dpll_ffo_get,
 +#endif
  };
  
  static const struct dpll_pin_properties mlx5_dpll_pin_properties = {
-@@ -366,7 +402,12 @@ static void mlx5_dpll_netdev_dpll_pin_set(struct mlx5_dpll *mdpll,
+@@ -366,7 +417,12 @@ static void mlx5_dpll_netdev_dpll_pin_set(struct mlx5_dpll *mdpll,
  {
  	if (mdpll->tracking_netdev)
  		return;
@@ -180,7 +203,7 @@
  	mdpll->tracking_netdev = netdev;
  }
  
-@@ -374,7 +415,11 @@ static void mlx5_dpll_netdev_dpll_pin_clear(struct mlx5_dpll *mdpll)
+@@ -374,7 +430,11 @@ static void mlx5_dpll_netdev_dpll_pin_clear(struct mlx5_dpll *mdpll)
  {
  	if (!mdpll->tracking_netdev)
  		return;
@@ -192,7 +215,7 @@
  	mdpll->tracking_netdev = NULL;
  }
  
-@@ -438,7 +483,12 @@ static int mlx5_dpll_probe(struct auxiliary_device *adev,
+@@ -438,7 +498,12 @@ static int mlx5_dpll_probe(struct auxiliary_device *adev,
  	auxiliary_set_drvdata(adev, mdpll);
  
  	/* Multiple mdev instances might share one DPLL device. */
@@ -206,7 +229,7 @@
  	if (IS_ERR(mdpll->dpll)) {
  		err = PTR_ERR(mdpll->dpll);
  		goto err_free_mdpll;
-@@ -451,7 +501,12 @@ static int mlx5_dpll_probe(struct auxiliary_device *adev,
+@@ -451,7 +516,12 @@ static int mlx5_dpll_probe(struct auxiliary_device *adev,
  
  	/* Multiple mdev instances might share one DPLL pin. */
  	mdpll->dpll_pin = dpll_pin_get(clock_id, mlx5_get_dev_index(mdev),
@@ -220,7 +243,7 @@
  	if (IS_ERR(mdpll->dpll_pin)) {
  		err = PTR_ERR(mdpll->dpll_pin);
  		goto err_unregister_dpll_device;
-@@ -479,11 +534,21 @@ err_unregister_dpll_pin:
+@@ -479,11 +549,21 @@ err_unregister_dpll_pin:
  	dpll_pin_unregister(mdpll->dpll, mdpll->dpll_pin,
  			    &mlx5_dpll_pins_ops, mdpll);
  err_put_dpll_pin:
@@ -244,7 +267,7 @@
  err_free_mdpll:
  	kfree(mdpll);
  	return err;
-@@ -499,9 +564,19 @@ static void mlx5_dpll_remove(struct auxiliary_device *adev)
+@@ -499,9 +579,19 @@ static void mlx5_dpll_remove(struct auxiliary_device *adev)
  	destroy_workqueue(mdpll->wq);
  	dpll_pin_unregister(mdpll->dpll, mdpll->dpll_pin,
  			    &mlx5_dpll_pins_ops, mdpll);
@@ -266,7 +289,7 @@
  	kfree(mdpll);
  
  	mlx5_dpll_synce_status_set(mdev,
-@@ -523,7 +598,12 @@ static const struct auxiliary_device_id mlx5_dpll_id_table[] = {
+@@ -523,7 +613,12 @@ static const struct auxiliary_device_id mlx5_dpll_id_table[] = {
  	{},
  };
  
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/backports/0178-BACKPORT-drivers-net-ethernet-mellanox-mlx5-core-mlx.patch doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/backports/0178-BACKPORT-drivers-net-ethernet-mellanox-mlx5-core-mlx.patch
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/backports/0178-BACKPORT-drivers-net-ethernet-mellanox-mlx5-core-mlx.patch	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/backports/0178-BACKPORT-drivers-net-ethernet-mellanox-mlx5-core-mlx.patch	2026-07-16 14:55:59.000000000 +0200
@@ -12,7 +12,7 @@
 +++ b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
 @@ -45,6 +45,10 @@
  
- #define DRIVER_VERSION	"26.04-0.8.5"
+ #define DRIVER_VERSION	"26.04-1.1.0"
  
 +#ifndef BITS_TO_BYTES
 +#define BITS_TO_BYTES(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE)
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat/aclocal.m4 doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat/aclocal.m4
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat/aclocal.m4	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat/aclocal.m4	2026-07-16 14:55:59.000000000 +0200
@@ -1092,6 +1092,24 @@
 		return 0;
 	])
 
+	MLNX_RDMA_TEST_CASE(HAVE_DPLL_PIN_OPS_FFO_GET_PARAM, [struct dpll_pin_ops .ffo_get takes struct dpll_ffo_param], [
+        #include <linux/dpll.h>
+
+         static int test_ffo_get(const struct dpll_pin *pin, void *pin_priv,
+                                 const struct dpll_device *dpll, void *dpll_priv,
+                                 struct dpll_ffo_param *ffo,
+                                 struct netlink_ext_ack *extack)
+         {
+                 return 0;
+         }
+         ],[
+                 struct dpll_pin_ops pin_ops = {};
+
+                 pin_ops.ffo_get = test_ffo_get;
+
+                 return 0;
+	])
+
 	MLNX_RDMA_TEST_CASE(HAVE_DPLL_NETDEV_PIN_SET, [dpll.h has dpll_netdev_pin_set], [
 	#include <linux/dpll.h>
 	],[
@@ -5372,6 +5390,19 @@
 
 		return 0;
 	])
+
+	MLNX_RDMA_TEST_CASE(HAVE_CHECK_ADD_OVERFLOW_MIXED_TYPES, [check_add_overflow accepts mixed argument types], [
+		#include <linux/overflow.h>
+		#include <linux/types.h>
+	],[
+		size_t len = 5;
+		u64 virt = 6;
+		u64 res;
+
+		(void)check_add_overflow(len - 1, virt, &res);
+
+		return 0;
+	])
 
 	MLNX_RDMA_TEST_CASE(HAVE_KVFREE_CALL_RCU, [function kvfree_call_rcu is defined], [
 		#include <linux/rcupdate.h>
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat/config/rdma.m4 doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat/config/rdma.m4
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat/config/rdma.m4	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat/config/rdma.m4	2026-07-16 14:55:59.000000000 +0200
@@ -143,6 +143,24 @@
 		return 0;
 	])
 
+	MLNX_RDMA_TEST_CASE(HAVE_DPLL_PIN_OPS_FFO_GET_PARAM, [struct dpll_pin_ops .ffo_get takes struct dpll_ffo_param], [
+        #include <linux/dpll.h>
+
+         static int test_ffo_get(const struct dpll_pin *pin, void *pin_priv,
+                                 const struct dpll_device *dpll, void *dpll_priv,
+                                 struct dpll_ffo_param *ffo,
+                                 struct netlink_ext_ack *extack)
+         {
+                 return 0;
+         }
+         ],[
+                 struct dpll_pin_ops pin_ops = {};
+
+                 pin_ops.ffo_get = test_ffo_get;
+
+                 return 0;
+	])
+
 	MLNX_RDMA_TEST_CASE(HAVE_DPLL_NETDEV_PIN_SET, [dpll.h has dpll_netdev_pin_set], [
 	#include <linux/dpll.h>
 	],[
@@ -4423,6 +4441,19 @@
 
 		return 0;
 	])
+
+	MLNX_RDMA_TEST_CASE(HAVE_CHECK_ADD_OVERFLOW_MIXED_TYPES, [check_add_overflow accepts mixed argument types], [
+		#include <linux/overflow.h>
+		#include <linux/types.h>
+	],[
+		size_t len = 5;
+		u64 virt = 6;
+		u64 res;
+
+		(void)check_add_overflow(len - 1, virt, &res);
+
+		return 0;
+	])
 
 	MLNX_RDMA_TEST_CASE(HAVE_KVFREE_CALL_RCU, [function kvfree_call_rcu is defined], [
 		#include <linux/rcupdate.h>
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat/config.h.in doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat/config.h.in
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat/config.h.in	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat/config.h.in	2026-07-16 14:55:59.000000000 +0200
@@ -402,6 +402,9 @@
 /* __cgroup_bpf_run_filter_sysctl have 7 parameters */
 #undef HAVE_CGROUP_BPF_RUN_FILTER_SYSCTL_7_PARAMETERS
 
+/* check_add_overflow accepts mixed argument types */
+#undef HAVE_CHECK_ADD_OVERFLOW_MIXED_TYPES
+
 /* vxlan_build_gbp_hdr is defined */
 #undef HAVE_CHECK_VXLAN_BUILD_GBP_HDR
 
@@ -804,6 +807,9 @@
 /* dpll.h has dpll_netdev_pin_set */
 #undef HAVE_DPLL_NETDEV_PIN_SET
 
+/* struct dpll_pin_ops .ffo_get takes struct dpll_ffo_param */
+#undef HAVE_DPLL_PIN_OPS_FFO_GET_PARAM
+
 /* struct dpll_pin_ops has ffo_get */
 #undef HAVE_DPLL_PIN_OPS_HAS_FFO_GET
 
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat/configure doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat/configure
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat/configure	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat/configure	2026-07-16 14:55:59.000000000 +0200
@@ -3055,6 +3055,56 @@
 
 	if false; then
 
+printf "%s\n" "#define HAVE_DPLL_PIN_OPS_FFO_GET_PARAM -1" >>confdefs.h
+
+	fi
+	MLNX_RDMA_MOD_NAME=HAVE_DPLL_PIN_OPS_FFO_GET_PARAM
+	MLNX_RDMA_MOD_DIR="$MLNX_RDMA_MODULES_DIR/$MLNX_RDMA_MOD_NAME"
+	rm -rf "$MLNX_RDMA_MOD_DIR"
+	mkdir -p "$MLNX_RDMA_MOD_DIR"
+	cat <<'EOF' >"$MLNX_RDMA_MOD_DIR/$MLNX_RDMA_TEST_MOD.c"
+#include <linux/module.h>
+#include <linux/kernel.h>
+MODULE_LICENSE("GPL");
+
+        #include <linux/dpll.h>
+
+         static int test_ffo_get(const struct dpll_pin *pin, void *pin_priv,
+                                 const struct dpll_device *dpll, void *dpll_priv,
+                                 struct dpll_ffo_param *ffo,
+                                 struct netlink_ext_ack *extack)
+         {
+                 return 0;
+         }
+
+static int __maybe_unused test_func (void) {
+
+                 struct dpll_pin_ops pin_ops = {};
+
+                 pin_ops.ffo_get = test_ffo_get;
+
+                 return 0;
+
+	return 0;
+}
+EOF
+		cat <<EOF >"$MLNX_RDMA_MOD_DIR/Makefile"
+obj-m += $MLNX_RDMA_TEST_MOD.o
+# The rest is for printing a single dot:
+ifeq (,\$(MLNX_RDMA_SILENT))
+\$(obj)/$MLNX_RDMA_TEST_MOD.o: \$(obj)/echo
+\$(obj)/echo:
+	@echo -n .
+.PHONY: \$(obj)/echo
+endif
+EOF
+	echo "obj-\$(MLNX_TEST)\$(MLNX_TEST_$MLNX_RDMA_MOD_NAME) += $MLNX_RDMA_MOD_NAME/" >>$MLNX_RDMA_MODULES_DIR/Makefile
+	echo "struct dpll_pin_ops .ffo_get takes struct dpll_ffo_param" > "$MLNX_RDMA_MODULES_DIR/desc"
+
+
+
+	if false; then
+
 printf "%s\n" "#define HAVE_DPLL_NETDEV_PIN_SET -1" >>confdefs.h
 
 	fi
@@ -21971,6 +22021,51 @@
 
 
 
+	if false; then
+
+printf "%s\n" "#define HAVE_CHECK_ADD_OVERFLOW_MIXED_TYPES -1" >>confdefs.h
+
+	fi
+	MLNX_RDMA_MOD_NAME=HAVE_CHECK_ADD_OVERFLOW_MIXED_TYPES
+	MLNX_RDMA_MOD_DIR="$MLNX_RDMA_MODULES_DIR/$MLNX_RDMA_MOD_NAME"
+	rm -rf "$MLNX_RDMA_MOD_DIR"
+	mkdir -p "$MLNX_RDMA_MOD_DIR"
+	cat <<'EOF' >"$MLNX_RDMA_MOD_DIR/$MLNX_RDMA_TEST_MOD.c"
+#include <linux/module.h>
+#include <linux/kernel.h>
+MODULE_LICENSE("GPL");
+
+		#include <linux/overflow.h>
+		#include <linux/types.h>
+
+static int __maybe_unused test_func (void) {
+
+		size_t len = 5;
+		u64 virt = 6;
+		u64 res;
+
+		(void)check_add_overflow(len - 1, virt, &res);
+
+		return 0;
+
+	return 0;
+}
+EOF
+		cat <<EOF >"$MLNX_RDMA_MOD_DIR/Makefile"
+obj-m += $MLNX_RDMA_TEST_MOD.o
+# The rest is for printing a single dot:
+ifeq (,\$(MLNX_RDMA_SILENT))
+\$(obj)/$MLNX_RDMA_TEST_MOD.o: \$(obj)/echo
+\$(obj)/echo:
+	@echo -n .
+.PHONY: \$(obj)/echo
+endif
+EOF
+	echo "obj-\$(MLNX_TEST)\$(MLNX_TEST_$MLNX_RDMA_MOD_NAME) += $MLNX_RDMA_MOD_NAME/" >>$MLNX_RDMA_MODULES_DIR/Makefile
+	echo "check_add_overflow accepts mixed argument types" > "$MLNX_RDMA_MODULES_DIR/desc"
+
+
+
 	if false; then
 
 printf "%s\n" "#define HAVE_KVFREE_CALL_RCU -1" >>confdefs.h
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat_base doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat_base
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat_base	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat_base	2026-07-16 14:55:59.000000000 +0200
@@ -1 +1 @@
-mlnx-ofa_kernel-compat-20260525-1824-1492b14
\ No newline at end of file
+mlnx-ofa_kernel-compat-20260714-0600-93f93a8
\ No newline at end of file
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat_base_tree_version doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat_base_tree_version
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat_base_tree_version	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat_base_tree_version	2026-07-16 14:55:59.000000000 +0200
@@ -1 +1 @@
-1492b14
\ No newline at end of file
+93f93a8
\ No newline at end of file
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat_version doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat_version
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/compat_version	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/compat_version	2026-07-16 14:55:59.000000000 +0200
@@ -1 +1 @@
-1492b14
\ No newline at end of file
+93f93a8
\ No newline at end of file
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/debian/changelog doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/debian/changelog
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/debian/changelog	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/debian/changelog	2026-07-16 14:55:59.000000000 +0200
@@ -1,4 +1,4 @@
-mlnx-ofed-kernel (26.04.OFED.26.04.0.8.5.1-1) unstable; urgency=low
+mlnx-ofed-kernel (26.04.OFED.26.04.1.1.0.1-1) unstable; urgency=low
 
   * Initial release (Closes: #125306)
 
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/core/umem.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/core/umem.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/core/umem.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/core/umem.c	2026-07-16 14:55:59.000000000 +0200
@@ -87,14 +87,17 @@
  */
 unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
 				     unsigned long pgsz_bitmap,
-				     unsigned long virt)
+				     u64 virt)
 {
 	unsigned long curr_len = 0;
 	dma_addr_t curr_base = ~0;
-	unsigned long va, pgoff;
+	unsigned long pgoff;
 	struct scatterlist *sg;
-	dma_addr_t mask;
+	unsigned long mask = 0;
+	unsigned int bits;
 	dma_addr_t end;
+	u64 last_va;
+	u64 va;
 	int i;
 
 	umem->iova = va = virt;
@@ -112,9 +115,12 @@
 	 * number of required pages. Compute the largest page size that could
 	 * work based on VA address bits that don't change.
 	 */
-	mask = pgsz_bitmap &
-	       GENMASK(BITS_PER_LONG - 1,
-		       bits_per((umem->length - 1 + virt) ^ virt));
+	if (check_add_overflow(umem->length - 1, virt, &last_va))
+		return 0;
+	bits = bits_per(virt ^ last_va);
+	if (bits < BITS_PER_LONG)
+		mask = pgsz_bitmap & GENMASK(BITS_PER_LONG - 1, bits);
+
 	/* offset into first SGL */
 	pgoff = umem->address & ~PAGE_MASK;
 
@@ -385,3 +391,19 @@
 		return 0;
 }
 EXPORT_SYMBOL(ib_umem_copy_from);
+
+/*
+ * Called during rereg mr if the driver is able to re-use a umem for
+ * IB_MR_REREG_ACCESS.
+ */
+int ib_umem_check_rereg(struct ib_umem *umem, int flags, int new_access_flags)
+{
+	if (!umem)
+		return 0;
+
+	if ((flags & IB_MR_REREG_ACCESS) && !(flags & IB_MR_REREG_TRANS))
+		if (ib_access_writable(new_access_flags) && !umem->writable)
+			return -EACCES;
+	return 0;
+}
+EXPORT_SYMBOL(ib_umem_check_rereg);
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/core/verbs.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/core/verbs.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/core/verbs.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/core/verbs.c	2026-07-16 14:55:59.000000000 +0200
@@ -3177,8 +3177,8 @@
 
 bool __rdma_block_iter_next(struct ib_block_iter *biter)
 {
-	unsigned int block_offset;
-	unsigned int delta;
+	dma_addr_t block_offset;
+	dma_addr_t delta;
 
 	if (!biter->__sg_nents || !biter->__sg)
 		return false;
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/amso1100/main.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/amso1100/main.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/amso1100/main.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/amso1100/main.c	2026-07-16 14:55:59.000000000 +0200
@@ -35,8 +35,8 @@
 #include <linux/errno.h>
 
 #define DRV_NAME	"iw_c2"
-#define DRV_VERSION	"26.04-0.8.5"
-#define DRV_RELDATE	"25 May 2026"
+#define DRV_VERSION	"26.04-1.1.0"
+#define DRV_RELDATE	"14 Jul 2026"
 
 MODULE_AUTHOR("Vladimir Sokolovsky");
 MODULE_DESCRIPTION("iw_c2 dummy kernel module");
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/cxgb3/main.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/cxgb3/main.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/cxgb3/main.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/cxgb3/main.c	2026-07-16 14:55:59.000000000 +0200
@@ -35,8 +35,8 @@
 #include <linux/errno.h>
 
 #define DRV_NAME	"iw_cxgb3"
-#define DRV_VERSION	"26.04-0.8.5"
-#define DRV_RELDATE	"25 May 2026"
+#define DRV_VERSION	"26.04-1.1.0"
+#define DRV_RELDATE	"14 Jul 2026"
 
 MODULE_AUTHOR("Alaa Hleihel");
 MODULE_DESCRIPTION("iw_cxgb3 dummy kernel module");
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/cxgb4/main.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/cxgb4/main.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/cxgb4/main.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/cxgb4/main.c	2026-07-16 14:55:59.000000000 +0200
@@ -35,8 +35,8 @@
 #include <linux/errno.h>
 
 #define DRV_NAME	"iw_cxgb4"
-#define DRV_VERSION	"26.04-0.8.5"
-#define DRV_RELDATE	"25 May 2026"
+#define DRV_VERSION	"26.04-1.1.0"
+#define DRV_RELDATE	"14 Jul 2026"
 
 MODULE_AUTHOR("Alaa Hleihel");
 MODULE_DESCRIPTION("iw_cxgb4 dummy kernel module");
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/ipath/ib_ipath.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/ipath/ib_ipath.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/ipath/ib_ipath.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/ipath/ib_ipath.c	2026-07-16 14:55:59.000000000 +0200
@@ -35,8 +35,8 @@
 #include <linux/errno.h>
 
 #define DRV_NAME	"ib_ipath"
-#define DRV_VERSION	"26.04-0.8.5"
-#define DRV_RELDATE	"25 May 2026"
+#define DRV_VERSION	"26.04-1.1.0"
+#define DRV_RELDATE	"14 Jul 2026"
 
 MODULE_AUTHOR("Alaa Hleihel");
 MODULE_DESCRIPTION("ib_ipath dummy kernel module");
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/mlx4/main.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/mlx4/main.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/mlx4/main.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/mlx4/main.c	2026-07-16 14:55:59.000000000 +0200
@@ -35,8 +35,8 @@
 #include <linux/errno.h>
 
 #define DRV_NAME	mlx4_ib
-#define DRV_VERSION	"26.04-0.8.5"
-#define DRV_RELDATE	"25 May 2026"
+#define DRV_VERSION	"26.04-1.1.0"
+#define DRV_RELDATE	"14 Jul 2026"
 
 MODULE_AUTHOR("Tzafrir Cohen");
 MODULE_LICENSE("Dual BSD/GPL");
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/mlx5/mr.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/mlx5/mr.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/mlx5/mr.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/mlx5/mr.c	2026-07-16 14:55:59.000000000 +0200
@@ -2240,6 +2240,10 @@
 	if (flags & ~(IB_MR_REREG_TRANS | IB_MR_REREG_PD | IB_MR_REREG_ACCESS))
 		return ERR_PTR(-EOPNOTSUPP);
 
+	err = ib_umem_check_rereg(mr->umem, flags, new_access_flags);
+	if (err)
+		return ERR_PTR(err);
+
 	if (!(flags & IB_MR_REREG_ACCESS))
 		new_access_flags = mr->access_flags;
 	if (!(flags & IB_MR_REREG_PD))
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/nes/main.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/nes/main.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/nes/main.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/nes/main.c	2026-07-16 14:55:59.000000000 +0200
@@ -35,8 +35,8 @@
 #include <linux/errno.h>
 
 #define DRV_NAME	"iw_nes"
-#define DRV_VERSION	"26.04-0.8.5"
-#define DRV_RELDATE	"25 May 2026"
+#define DRV_VERSION	"26.04-1.1.0"
+#define DRV_RELDATE	"14 Jul 2026"
 
 MODULE_AUTHOR("Alaa Hleihel");
 MODULE_DESCRIPTION("iw_nes dummy kernel module");
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/usnic/main.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/usnic/main.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/hw/usnic/main.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/hw/usnic/main.c	2026-07-16 14:55:59.000000000 +0200
@@ -35,8 +35,8 @@
 #include <linux/errno.h>
 
 #define DRV_NAME	"usnic_verbs"
-#define DRV_VERSION	"26.04-0.8.5"
-#define DRV_RELDATE	"25 May 2026"
+#define DRV_VERSION	"26.04-1.1.0"
+#define DRV_RELDATE	"14 Jul 2026"
 
 MODULE_AUTHOR("Alaa Hleihel");
 MODULE_DESCRIPTION("usnic_verbs dummy kernel module");
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/ulp/srp/ib_srp_dummy.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/ulp/srp/ib_srp_dummy.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/ulp/srp/ib_srp_dummy.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/ulp/srp/ib_srp_dummy.c	2026-07-16 14:55:59.000000000 +0200
@@ -37,8 +37,8 @@
 
 #define DRV_NAME	"ib_srp"
 #define PFX		DRV_NAME ": "
-#define DRV_VERSION	"26.04-0.8.5"
-#define DRV_RELDATE	"25 May 2026"
+#define DRV_VERSION	"26.04-1.1.0"
+#define DRV_RELDATE	"14 Jul 2026"
 
 MODULE_AUTHOR("Alaa Hleihel");
 MODULE_DESCRIPTION("ib_srp dummy kernel module");
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/ulp/srpt/main.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/ulp/srpt/main.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/infiniband/ulp/srpt/main.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/infiniband/ulp/srpt/main.c	2026-07-16 14:55:59.000000000 +0200
@@ -36,7 +36,7 @@
 
 #define DRV_NAME	"ib_srpt"
 #define DRV_VERSION	"0.1"
-#define DRV_RELDATE	"25 May 2026"
+#define DRV_RELDATE	"14 Jul 2026"
 
 MODULE_AUTHOR("Alaa Hleihel");
 MODULE_DESCRIPTION("ib_srpt dummy kernel module");
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h	2026-07-16 14:55:59.000000000 +0200
@@ -43,7 +43,7 @@
 #include <linux/mlx5/driver.h>
 #include "lib/devcom.h"
 
-#define DRIVER_VERSION	"26.04-0.8.5"
+#define DRIVER_VERSION	"26.04-1.1.0"
 
 extern uint mlx5_core_debug_mask;
 
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/include/rdma/ib_umem.h doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/include/rdma/ib_umem.h
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/include/rdma/ib_umem.h	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/include/rdma/ib_umem.h	2026-07-16 14:55:59.000000000 +0200
@@ -123,7 +123,7 @@
 		      size_t length);
 unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
 				     unsigned long pgsz_bitmap,
-				     unsigned long virt);
+				     u64 virt);
 
 /**
  * ib_umem_find_best_pgoff - Find best HW page size
@@ -156,16 +156,11 @@
 
 static inline bool ib_umem_is_contiguous(struct ib_umem *umem)
 {
-	dma_addr_t dma_addr;
 	unsigned long pgsz;
 
-	/*
-	 * Select the smallest aligned page that can contain the whole umem if
-	 * it was contiguous.
-	 */
-	dma_addr = ib_umem_start_dma_addr(umem);
-	pgsz = roundup_pow_of_two((dma_addr ^ (umem->length - 1 + dma_addr)) + 1);
-	return !!ib_umem_find_best_pgoff(umem, pgsz, U64_MAX);
+	pgsz = ib_umem_find_best_pgsz(umem, ULONG_MAX,
+				      ib_umem_start_dma_addr(umem));
+	return pgsz && ib_umem_num_dma_blocks(umem, pgsz) == 1;
 }
 
 struct ib_umem_dmabuf *ib_umem_dmabuf_get(struct ib_device *device,
@@ -193,6 +188,8 @@
 					   void *cookie);
 void ib_umem_stop_invalidation_notifier(struct ib_umem *umem);
 
+int ib_umem_check_rereg(struct ib_umem *umem, int flags, int new_access_flags);
+
 #else /* CONFIG_INFINIBAND_USER_MEM */
 
 #include <linux/err.h>
@@ -210,7 +207,7 @@
 }
 static inline unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem,
 						   unsigned long pgsz_bitmap,
-						   unsigned long virt)
+						   u64 virt)
 {
 	return 0;
 }
@@ -267,5 +264,11 @@
 {
 }
 
+static inline int ib_umem_check_rereg(struct ib_umem *umem, int flags,
+				      int new_access_flags)
+{
+	return -EOPNOTSUPP;
+}
+
 #endif /* CONFIG_INFINIBAND_USER_MEM */
 #endif /* IB_UMEM_H */
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/mlnx-ofa_kernel.spec doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/mlnx-ofa_kernel.spec
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/mlnx-ofa_kernel.spec	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/mlnx-ofa_kernel.spec	2026-07-16 14:55:59.000000000 +0200
@@ -104,7 +104,7 @@
 
 %{!?_name: %global _name mlnx-ofa_kernel}
 %{!?_version: %global _version 26.04}
-%{!?_release: %global _release OFED.26.04.0.8.5.1}
+%{!?_release: %global _release OFED.26.04.1.1.0.1}
 %global _kmp_rel %{_release}%{?_kmp_build_num}%{?_dist}
 %global dkms_version %{version}-%{_release}
 
@@ -158,7 +158,7 @@
 %description
 InfiniBand "verbs", Access Layer  and ULPs.
 Utilities rpm.
-The driver sources are located at: http://www.mellanox.com/downloads/ofed/mlnx-ofa_kernel-26.04-0.8.5.tgz
+The driver sources are located at: http://www.mellanox.com/downloads/ofed/mlnx-ofa_kernel-26.04-1.1.0.tgz
 
 
 %if %{with building_kmods}
@@ -204,7 +204,7 @@
 %description -n %{non_kmp_pname}
 Core, HW and ULPs kernel modules
 Non-KMP format kernel modules rpm.
-The driver sources are located at: http://www.mellanox.com/downloads/ofed/mlnx-ofa_kernel-26.04-0.8.5.tgz
+The driver sources are located at: http://www.mellanox.com/downloads/ofed/mlnx-ofa_kernel-26.04-1.1.0.tgz
 %endif #end if "%{KMP}" == "1"
 
 %package -n %{devel_pname}
@@ -235,7 +235,7 @@
 Group: System Environment/Libraries
 %description -n %{devel_pname}
 Core, HW and ULPs kernel modules sources
-The driver sources are located at: http://www.mellanox.com/downloads/ofed/mlnx-ofa_kernel-26.04-0.8.5.tgz
+The driver sources are located at: http://www.mellanox.com/downloads/ofed/mlnx-ofa_kernel-26.04-1.1.0.tgz
 %endif # end building_kmods
 
 %package source
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/net/9p/9pnet_rdma.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/net/9p/9pnet_rdma.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/mlnx-ofed-kernel/net/9p/9pnet_rdma.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/mlnx-ofed-kernel/net/9p/9pnet_rdma.c	2026-07-16 14:55:59.000000000 +0200
@@ -35,8 +35,8 @@
 #include <linux/errno.h>
 
 #define DRV_NAME	"9pnet_rdma"
-#define DRV_VERSION	"26.04-0.8.5"
-#define DRV_RELDATE	"25 May 2026"
+#define DRV_VERSION	"26.04-1.1.0"
+#define DRV_RELDATE	"14 Jul 2026"
 
 MODULE_AUTHOR("Alaa Hleihel");
 MODULE_DESCRIPTION("9pnet_rdma dummy kernel module");
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/srp/debian/changelog doca-ofed-3.4-dkms-3.4.1+1.1.0.0/srp/debian/changelog
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/srp/debian/changelog	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/srp/debian/changelog	2026-07-16 14:55:59.000000000 +0200
@@ -1,4 +1,4 @@
-srp (26.04.OFED.26.04.0.8.5.1-1) unstable; urgency=low
+srp (26.04.OFED.26.04.1.1.0.1-1) unstable; urgency=low
 
   * Initial release.
 
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/srp/srp.spec doca-ofed-3.4-dkms-3.4.1+1.1.0.0/srp/srp.spec
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/srp/srp.spec	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/srp/srp.spec	2026-07-16 14:55:59.000000000 +0200
@@ -28,7 +28,7 @@
 
 %{!?_name: %global _name srp}
 %{!?_version: %global _version 26.04}
-%{!?_release: %global _release OFED.26.04.0.8.5.1}
+%{!?_release: %global _release OFED.26.04.1.1.0.1}
 %global dkms_version %{version}-%{_release}
 
 %bcond_with building_kmods
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/.coderabbit.yaml doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/.coderabbit.yaml
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/.coderabbit.yaml	1970-01-01 01:00:00.000000000 +0100
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/.coderabbit.yaml	2026-07-16 14:55:59.000000000 +0200
@@ -0,0 +1,14 @@
+# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
+
+reviews:
+  high_level_summary: false
+  poem: false
+  in_progress_fortune: false
+  collapse_walkthrough: true
+  changed_files_summary: false
+  sequence_diagrams: false
+  estimate_code_review_effort: false
+  suggested_labels: false
+
+chat:
+  art: false
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/.gitlab-ci.yml doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/.gitlab-ci.yml
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/.gitlab-ci.yml	1970-01-01 01:00:00.000000000 +0100
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/.gitlab-ci.yml	2026-07-16 14:55:59.000000000 +0200
@@ -0,0 +1,15 @@
+stages:
+  - build
+
+build-job:
+  stage: build
+  image: urm.nvidia.com/sw-nbu-build-docker/package-builder/debian:13
+  script:
+    - apt-get install -y build-essential automake
+    - dpkg --add-architecture arm64
+    - apt-get update
+    - apt-get install -y crossbuild-essential-arm64 libc6:arm64
+    - git clone https://gitlab-master.nvidia.com/doca-host/test-kernel-headers tmp_kernels
+    - ci/test_build_kernel
+  tags:
+    - os/linux
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/ci/test_build_kernel doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/ci/test_build_kernel
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/ci/test_build_kernel	1970-01-01 01:00:00.000000000 +0100
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/ci/test_build_kernel	2026-07-16 14:55:59.000000000 +0200
@@ -0,0 +1,73 @@
+#!/bin/bash
+
+KERNELS_DIR=`realpath tmp_kernels`
+CURR_ARCH=`uname -m`
+ERRORS=()
+
+list_kernels() {
+        git --git-dir "$KERNELS_DIR/.git" branch -r | sed -e 's|origin/||' | grep -E 'aarch64|x86_64' | cut -c 3-
+}
+
+run_test() {
+	local output rc
+	name="$1"
+	shift
+
+	output=`"$@" 2>&1`
+	rc=$?
+	if [ $rc -eq 0 ]; then
+		return
+	fi
+	echo "$0: [$name]: Command failed: $*"
+	echo "$output"
+	ERRORS+=("$name")
+	return $rc
+}
+
+if ! run_test autogen ./autogen.sh; then
+	echo "$0: autogen failed. Test setup broken"
+	exit 2
+fi
+if ! run_test "configure" ./configure --disable-kernel-module; then
+	echo "$0: configure failed. Test setup broken"
+	exit 3
+fi
+
+
+njobs=`nproc || echo 1`
+for kernel in `list_kernels`; do
+	kver="${kernel#*/}"
+	arch="${kernel%/*}"
+	karch="$arch"
+	case "$arch" in
+	aarch64) karch="arm64";;
+	esac
+	(
+		cd "$KERNELS_DIR"
+		git switch -q "$arch/$kver"
+	)
+	export KSRC="$KERNELS_DIR"
+	if [ "$arch" != "$CURR_ARCH" ]; then
+		export ARCH="$karch"
+		export export CROSS_COMPILE="${arch}-linux-gnu-"
+	else
+		export -n ARCH CROSS_COMPILE
+	fi
+	if ! run_test "config-$kernel" ./kernel/config_kernel; then
+		continue
+	fi
+	if run_test "build-$kernel" make -C $PWD/kernel KSRC="$KSRC" KERNEL_PATH="$KSRC" -j$njobs; then
+		echo "$0: $kernel: Success"
+	fi
+done
+
+if [ ${#ERRORS[@]} -eq 0 ]; then
+	exit 0
+fi
+
+echo "$0: Errors found in test:"
+for e in ${ERRORS[@]}; do
+	echo "   $e"
+done
+exit 1
+
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/ci/uname_wrapper doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/ci/uname_wrapper
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/ci/uname_wrapper	1970-01-01 01:00:00.000000000 +0100
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/ci/uname_wrapper	2026-07-16 14:55:59.000000000 +0200
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+uname=`which uname`
+uname_fake="$uname-fake"
+uname_fake_relative="uname-fake"
+uname_real="$uname-real"
+do_makedir="0"
+if [ -L "$uname" ]; then
+	if realpath "$uname" | grep -q coreutils; then
+		uname_fake="/usr/lib/uname_fake/wrapper"
+		uname_fake_relative="../lib/uname_fake/wrapper"
+		uname_real="/usr/lib/uname_fake/uname"
+		do_makedir="1"
+	else
+		exit 0
+	fi
+fi
+
+kvers="$1"
+if [ "$kvers" = "" ]; then
+	echo "$0: missing parameter: (faked) kernel version. Aborting"
+	exit 1
+fi
+if [ ! -d "/lib/modules/$kvers" ]; then
+	echo "$0: Kernel version $kvers is not installed. Aborting"
+	exit 2
+fi
+if [ "$uname" = "" ]; then
+	echo "$0: missing uname binary: Fix manually. Aborting"
+	exit 3
+fi
+if [ -x "$uname_real" ]; then
+	echo "$0: uname already moved to $uname_real. Fix manually. Aborting"
+	exit 3
+fi
+
+set -e
+
+if [ "$do_makedir" = '1' ]; then
+	mkdir -p `dirname "$uname_fake"`
+fi
+cat <<EOF >"$uname_fake"
+#!/bin/sh
+UNAME_REAL="$uname_real"
+RELEASE_WANTED="$kvers"
+release=\`\$UNAME_REAL -r\`
+output=\`\$UNAME_REAL "\$@"\`
+rc=\$?
+echo "\$output" | sed -e "s/\$release/\$RELEASE_WANTED/"
+exit \$rc
+EOF
+chmod +x "$uname_fake"
+mv "$uname" "$uname_real"
+if [ "$do_makedir" = '1' ]; then
+	rm "$uname_real"
+	ln -s ln -s ../cargo/bin/coreutils/uname "$uname_real"
+fi
+ln -s "$uname_fake_relative" "$uname"
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/debian/.gitignore doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/debian/.gitignore
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/debian/.gitignore	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/debian/.gitignore	1970-01-01 01:00:00.000000000 +0100
@@ -1,14 +0,0 @@
-*.debhelper
-*.debhelper.log
-*.substvars
-.debhelper/
-autoreconf.after
-autoreconf.before
-debhelper-build-stamp
-files
-tmp/
-xpmem/
-xpmem-dkms/
-xpmem-modules/
-libxpmem-dev/
-libxpmem0/
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/debian/changelog doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/debian/changelog
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/debian/changelog	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/debian/changelog	2026-07-16 14:55:59.000000000 +0200
@@ -1,4 +1,4 @@
-xpmem (2604.0.2-1) unstable; urgency=medium
+xpmem (2604.0.5-1) unstable; urgency=medium
 
   * New upstream release.
 
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/debian/changelog.in doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/debian/changelog.in
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/debian/changelog.in	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/debian/changelog.in	2026-07-16 14:55:59.000000000 +0200
@@ -1,4 +1,4 @@
-xpmem-lib (2604.0.2-1) unstable; urgency=medium
+xpmem-lib (2604.0.5-1) unstable; urgency=medium
 
   * Initial release.
 
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/debian/rules doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/debian/rules
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/debian/rules	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/debian/rules	2026-07-16 14:55:59.000000000 +0200
@@ -15,6 +15,7 @@
 
 -include /usr/share/dpkg/pkg-info.mk
 
+WITH_MOD_SIGN ?= 0
 WITH_MODULES = $(filter modules,${DEB_BUILD_PROFILES})
 
 kernel_source_args = 
@@ -70,6 +71,9 @@
 		mkdir -p debian/tmp/lib; \
 		mv -v debian/tmp/usr/lib/modules debian/tmp/lib/ ; \
 	fi
+ifeq ($(WITH_MOD_SIGN),1)
+	tools/sign-modules debian/tmp/lib/modules $(kernel_source_dir)
+endif
 endif
 
 override_dh_dkms:
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/kernel/test_cases/HAVE_ZAP_SPECIAL_VMA_RANGE.init doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/kernel/test_cases/HAVE_ZAP_SPECIAL_VMA_RANGE.init
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/kernel/test_cases/HAVE_ZAP_SPECIAL_VMA_RANGE.init	1970-01-01 01:00:00.000000000 +0100
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/kernel/test_cases/HAVE_ZAP_SPECIAL_VMA_RANGE.init	2026-07-16 14:55:59.000000000 +0200
@@ -0,0 +1 @@
+#include <linux/mm.h>
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/kernel/test_cases/HAVE_ZAP_SPECIAL_VMA_RANGE.main doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/kernel/test_cases/HAVE_ZAP_SPECIAL_VMA_RANGE.main
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/kernel/test_cases/HAVE_ZAP_SPECIAL_VMA_RANGE.main	1970-01-01 01:00:00.000000000 +0100
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/kernel/test_cases/HAVE_ZAP_SPECIAL_VMA_RANGE.main	2026-07-16 14:55:59.000000000 +0200
@@ -0,0 +1 @@
+zap_special_vma_range(NULL, 0, 0);
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/kernel/xpmem_attach.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/kernel/xpmem_attach.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/kernel/xpmem_attach.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/kernel/xpmem_attach.c	2026-07-16 14:55:59.000000000 +0200
@@ -28,6 +28,10 @@
 #include <linux/sched/signal.h>
 #endif
 
+#ifndef HAVE_ZAP_SPECIAL_VMA_RANGE
+#define zap_special_vma_range zap_vma_ptes
+#endif
+
 static void
 xpmem_open_handler(struct vm_area_struct *vma)
 {
@@ -886,8 +890,8 @@
 			vma = find_vma(att->mm, att->at_vaddr);
 
 		/* NTH: is this a viable alternative to zap_page_range(). The
-		 * benefit of zap_vma_ptes is that it is exported by default. */
-		(void) zap_vma_ptes (vma, unpin_at, invalidate_len);
+		 * benefit of zap_special_vma_range is that it is exported by default. */
+		(void) zap_special_vma_range (vma, unpin_at, invalidate_len);
 
 		/* Only clear the flag if all pages were zapped */
 		if (offset_start == 0 && att->at_size == invalidate_len)
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/kernel/xpmem_pfn.c doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/kernel/xpmem_pfn.c
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/kernel/xpmem_pfn.c	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/kernel/xpmem_pfn.c	2026-07-16 14:55:59.000000000 +0200
@@ -70,12 +70,17 @@
 #endif
 
 #if (defined(CONFIG_ARM64) || defined(CONFIG_ARM))
+#ifndef pmd_sect
+#define pmd_is_huge(p) pmd_leaf(p)
+#define pud_is_huge(p) pud_leaf(p)
+#else
 #define pmd_is_huge(p) pmd_sect(p)
 #if (defined(pud_sect))
 #define pud_is_huge(p) pud_sect(p)
 #else
 #define pud_is_huge(p) (0)
 #endif
+#endif
 #elif defined(CONFIG_X86)
 #define pmd_is_huge(p) pmd_leaf(p)
 #define pud_is_huge(p) pud_leaf(p)
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/tools/sign-modules doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/tools/sign-modules
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/tools/sign-modules	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/tools/sign-modules	2026-07-16 14:55:59.000000000 +0200
@@ -1,22 +1,134 @@
 #! /bin/bash
+#
+# Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
+#
+# This Software is licensed under one of the following licenses:
+#
+# 1) under the terms of the "Common Public License 1.0" a copy of which is
+#    available from the Open Source Initiative, see
+#    http://www.opensource.org/licenses/cpl.php.
+#
+# 2) under the terms of the "The BSD License" a copy of which is
+#    available from the Open Source Initiative, see
+#    http://www.opensource.org/licenses/bsd-license.php.
+#
+# 3) under the terms of the "GNU General Public License (GPL) Version 2" a
+#    copy of which is available from the Open Source Initiative, see
+#    http://www.opensource.org/licenses/gpl-license.php.
+#
+# Licensee has the right to choose one of the above licenses.
+#
+# Redistributions of source code must retain the above copyright
+# notice and one of the license notices.
+#
+# Redistributions in binary form must reproduce both the above copyright
+# notice, one of the license notices in the documentation
+# and/or other materials provided with the distribution.
+#
 
-moddir=$1; shift
+set -e
+MODDIR=$1; shift
 KBUILD=$1; shift
 
+IFS_SAV="$IFS"
+
+modinfo="/sbin/modinfo"
+test_signed_mod() {
+    if [ -x "$modinfo" ]; then
+        test "`$modinfo -Fsig_hashalgo "$1" 2>/dev/null`" != ''
+        return $?
+    fi
+    # kmod not installed. Fallback to looking at the module file directly.
+    case "$1" in
+    *.ko) cat=cat;;
+    *.ko.gz) cat=zcat;;
+    *.ko.xz) cat=xzcat;;
+    *.ko.zst) cat=zstdcat;;
+    *)
+        echo >&2 "$0: Failed to check for signing without kmod installed with unsupported module format: $1"
+        exit 2
+        ;;
+    esac
+    tail=`$cat "$1"  | tail -c 28`
+    [ "$tail" = "~Module signature appended~" ]
+    return $?
+}
+
+test_signed() {
+    set +e
+    for m in "$@"; do
+        if ! test_signed_mod "$m"; then
+            echo "*** Modules are unsigned ($m)! ***"
+            set -e
+            exit 1
+        fi
+    done
+    set -e
+}
+
+sign_script() {
+    local script_full_path
+    script_full_path=`realpath "$MODULES_SIGN_SCRIPT"`
+    cd "$MODDIR"
+    output_dir="$PWD/signing_output"
+    IFS='
+'
+    # sed: remove leading './':
+    set -- `find . -name '*.ko' -o -name '*.ko.?z' -o -name '*.ko.zst' | sed -e 's|^./||'`
+    IFS="$IFS_SAV"
+    ppc_opt=
+    case "${ARCH:-`uname -m`}" in
+    ppc64*) ppc_opt=--ppc-platform;;
+    esac
+    rm -rf "$output_dir"
+    mkdir -p "$output_dir"
+    tarball="$output_dir/modules.tgz"
+    output_tarball="$output_dir/modules-out.tgz"
+    tar czf "$tarball" "$@"
+    (
+        cd `dirname "$script_full_path"`
+        if ! "$script_full_path" --file `realpath "$tarball"` \
+	    $ppc_opt \
+            --job-type KERNEL --prod \
+            --description "Signing xpmem" \
+            --out-file "$output_tarball" >"$output_dir/script_output.log"
+        then
+            if [ -f "$output_dir/sign-tool.log" ]; then
+                cat "$output_dir/sign-tool.log"
+            else
+                cat "$output_dir/script_output.log"
+            fi
+            exit 2
+        fi
+    )
+    tar xf "$output_tarball"
+    test_signed "$@"
+    rm -rf "$output_dir"
+    exit $?
+}
+
+if [ "${MODULES_SIGN_SCRIPT}" != '' -a ! -x "${MODULES_SIGN_SCRIPT}" ]; then
+    echo "Error: MODULES_SIGN_SCRIPT set but script not executable: '$MODULES_SIGN_SCRIPT'." >&2
+    exit 3
+fi
+if [ -x "${MODULES_SIGN_SCRIPT}" ]; then
+    sign_script
+fi
+
 SOURCES_DIR=
 case "$KBUILD" in
     *linux-obj*)
-    SOURCES_DIR=$(readlink -f $KBUILD 2>/dev/null | sed -e 's/-obj.*//g')
+    SOURCES_DIR=$(readlink -f "$KBUILD" 2>/dev/null | sed -e 's/-obj.*//g')
     ;;
     */usr/src/linux-*-obj/*)
-    SOURCES_DIR=$(readlink -f $KBUILD 2>/dev/null | sed -e 's/-obj.*//g')
+    SOURCES_DIR=$(readlink -f "$KBUILD" 2>/dev/null | sed -e 's/-obj.*//g')
     ;;
     *)
-    SOURCES_DIR=$(readlink -f ${KBUILD/build/source})
+    SOURCES_DIR=$(readlink -f "${KBUILD/build/source}"  2>/dev/null || :)
     ;;
 esac
 if [ ! -e "$SOURCES_DIR" ]; then
-    SOURCES_DIR=$KBUILD
+    SOURCES_DIR="$KBUILD"
 fi
 
 SIGN_FILE=
@@ -39,22 +151,15 @@
     exit 1
 fi
 
-modules=`find $moddir -name '*.ko' -o -name '*.ko.gz' -o -name '*.ko.xz'`
-for mod in $modules
-do
-    dir=`dirname $mod`
-    file=`basename $mod`
-
-    ${SIGN_FILE} sha256 ${MODULE_SIGN_PRIV_KEY} ${MODULE_SIGN_PUB_KEY} ${dir}/${file}
-    rm -f ${dir}/${file}.{sig,dig}
-done
-
-for mod in $modules
+IFS='
+'
+set -- `find "$MODDIR" -name '*.ko'`
+IFS="$IFS_SAV"
+for mod in "$@"
 do
-  if [ "~Module signature appended~" != "$(tail -c 28 $mod)" ]; then
-      echo "*** Modules are unsigned! (see $mod) ***"
-      exit 1
-  fi
+    "${SIGN_FILE}" sha256 "${MODULE_SIGN_PRIV_KEY}" "${MODULE_SIGN_PUB_KEY}" "$mod"
+    rm -f "$mod".{sig,dig}
 done
 
+test_signed "$@"
 exit 0
diff -Nru doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/xpmem.spec doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/xpmem.spec
--- doca-ofed-3.4-dkms-3.4.0+0.8.5.0/xpmem/xpmem.spec	2026-06-09 09:43:11.000000000 +0200
+++ doca-ofed-3.4-dkms-3.4.1+1.1.0.0/xpmem/xpmem.spec	2026-07-16 14:55:59.000000000 +0200
@@ -33,7 +33,7 @@
 
 Summary: Cross-partition memory
 Name: xpmem
-Version: 2604.0.2
+Version: 2604.0.5
 Release: 1
 License: GPLv2 and LGPLv2.1
 Group: System Environment/Libraries
@@ -184,7 +184,7 @@
 %{!?install_mod_dir: %global install_mod_dir updates}
 
 %global moduledir /lib/modules/%{KVERSION}/%{install_mod_dir}
- %define _ver 2604.0.2 
+ %define _ver 2604.0.5 
  %define _rel 1 
 
 %prep
@@ -276,5 +276,5 @@
 %endif
 
 %changelog
-* Tue Apr 28 2026 Tzafrir Cohen <nvidia@cohens.org.il> - 2604.0.2-1
+* Thu Aug 27 2026 Tzafrir Cohen <nvidia@cohens.org.il> - 2604.0.5-1
 Automated build 1
