diff --git a/build/external/patches/dpdk_22.03/0001-net-ice-fix-raw-flow-input-pattern-value-change-i.patch b/build/external/patches/dpdk_22.03/0001-net-ice-fix-raw-flow-input-pattern-value-change-i.patch
new file mode 100644
index 0000000..755f5bc
--- /dev/null
+++ b/build/external/patches/dpdk_22.03/0001-net-ice-fix-raw-flow-input-pattern-value-change-i.patch
@@ -0,0 +1,96 @@
+From 794d99b8abeeb401a374489a9e3c629d023c271f Mon Sep 17 00:00:00 2001
+From: Ting Xu <ting.xu@intel.com>
+Date: Fri, 4 Mar 2022 07:26:28 +0000
+Subject: [PATCH v2] net/ice: fix raw flow input pattern value change in FDIR
+
+When parsing raw flow pattern in FDIR, the input parameter spec and
+mask are used directly and the original value will be changed. It
+will cause error if these values are used in other functions. In this
+patch, temporary variables are created to store the spec and mask.
+
+Fixes: 25be39cc1760 ("net/ice: enable protocol agnostic flow offloading in FDIR")
+
+Cc: stable@dpdk.org
+
+Signed-off-by: Ting Xu <ting.xu@intel.com>
+---
+ drivers/net/ice/ice_fdir_filter.c | 25 +++++++++++++++++++------
+ 1 file changed, 19 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/net/ice/ice_fdir_filter.c b/drivers/net/ice/ice_fdir_filter.c
+index 7954c6d8ea..5ff1afac90 100644
+--- a/drivers/net/ice/ice_fdir_filter.c
++++ b/drivers/net/ice/ice_fdir_filter.c
+@@ -1868,10 +1868,11 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,
+ 				break;
+ 
+ 			/* convert raw spec & mask from byte string to int */
+-			unsigned char *tmp_spec =
++			unsigned char *spec_pattern =
+ 				(uint8_t *)(uintptr_t)raw_spec->pattern;
+-			unsigned char *tmp_mask =
++			unsigned char *mask_pattern =
+ 				(uint8_t *)(uintptr_t)raw_mask->pattern;
++			uint8_t *tmp_spec, *tmp_mask;
+ 			uint16_t udp_port = 0;
+ 			uint16_t tmp_val = 0;
+ 			uint8_t pkt_len = 0;
+@@ -1883,8 +1884,18 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,
+ 				pkt_len)
+ 				return -rte_errno;
+ 
++			tmp_spec = rte_zmalloc(NULL, pkt_len / 2, 0);
++			if (!tmp_spec)
++				return -rte_errno;
++
++			tmp_mask = rte_zmalloc(NULL, pkt_len / 2, 0);
++			if (!tmp_mask) {
++				rte_free(tmp_spec);
++				return -rte_errno;
++			}
++
+ 			for (i = 0, j = 0; i < pkt_len; i += 2, j++) {
+-				tmp = tmp_spec[i];
++				tmp = spec_pattern[i];
+ 				if (tmp >= 'a' && tmp <= 'f')
+ 					tmp_val = tmp - 'a' + 10;
+ 				if (tmp >= 'A' && tmp <= 'F')
+@@ -1893,7 +1904,7 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,
+ 					tmp_val = tmp - '0';
+ 
+ 				tmp_val *= 16;
+-				tmp = tmp_spec[i + 1];
++				tmp = spec_pattern[i + 1];
+ 				if (tmp >= 'a' && tmp <= 'f')
+ 					tmp_spec[j] = tmp_val + tmp - 'a' + 10;
+ 				if (tmp >= 'A' && tmp <= 'F')
+@@ -1901,7 +1912,7 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,
+ 				if (tmp >= '0' && tmp <= '9')
+ 					tmp_spec[j] = tmp_val + tmp - '0';
+ 
+-				tmp = tmp_mask[i];
++				tmp = mask_pattern[i];
+ 				if (tmp >= 'a' && tmp <= 'f')
+ 					tmp_val = tmp - 'a' + 10;
+ 				if (tmp >= 'A' && tmp <= 'F')
+@@ -1910,7 +1921,7 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,
+ 					tmp_val = tmp - '0';
+ 
+ 				tmp_val *= 16;
+-				tmp = tmp_mask[i + 1];
++				tmp = mask_pattern[i + 1];
+ 				if (tmp >= 'a' && tmp <= 'f')
+ 					tmp_mask[j] = tmp_val + tmp - 'a' + 10;
+ 				if (tmp >= 'A' && tmp <= 'F')
+@@ -1953,6 +1964,8 @@ ice_fdir_parse_pattern(__rte_unused struct ice_adapter *ad,
+ 
+ 			filter->parser_ena = true;
+ 
++			rte_free(tmp_spec);
++			rte_free(tmp_mask);
+ 			break;
+ 		}
+ 
+-- 
+2.17.1
+
