diff --git a/target/linux/layerscape/patches-5.4/701-net-0111-sdk_qbman-Avoid-variable-length-array-in-USDPAA.patch b/target/linux/layerscape/patches-5.4/701-net-0111-sdk_qbman-Avoid-variable-length-array-in-USDPAA.patch
new file mode 100644
index 0000000..39cfc2d
--- /dev/null
+++ b/target/linux/layerscape/patches-5.4/701-net-0111-sdk_qbman-Avoid-variable-length-array-in-USDPAA.patch
@@ -0,0 +1,100 @@
+From 0ad840e46732e95df274a84b042dcb210be9f946 Mon Sep 17 00:00:00 2001
+From: Roy Pledge <roy.pledge@nxp.com>
+Date: Thu, 28 Mar 2019 09:56:35 -0400
+Subject: [PATCH] sdk_qbman: Avoid variable length array in USDPAA
+
+As of Linux 5.0 variable length arrays on the stack are no
+longer allowed. Change to a dynamic array and create a common
+exit point in the function for cleanup.
+
+Signed-off-by: Roy Pledge <roy.pledge@nxp.com>
+---
+ drivers/staging/fsl_qbman/fsl_usdpaa.c | 36 +++++++++++++++++-----------------
+ 1 file changed, 18 insertions(+), 18 deletions(-)
+
+--- a/drivers/staging/fsl_qbman/fsl_usdpaa.c
++++ b/drivers/staging/fsl_qbman/fsl_usdpaa.c
+@@ -559,6 +559,7 @@ static bool check_portal_channel(void *c
+ 
+ static int usdpaa_release(struct inode *inode, struct file *filp)
+ {
++	int err = 0;
+ 	struct ctx *ctx = filp->private_data;
+ 	struct mem_mapping *map, *tmpmap;
+ 	struct portal_mapping *portal, *tmpportal;
+@@ -569,9 +570,14 @@ static int usdpaa_release(struct inode *
+ 	struct qm_portal_config *qm_alloced_portal = NULL;
+ 	struct bm_portal_config *bm_alloced_portal = NULL;
+ 
+-	struct qm_portal *portal_array[qman_portal_max];
++	struct qm_portal **portal_array;
+ 	int portal_count = 0;
+ 
++	portal_array = kmalloc_array(qman_portal_max,
++				     sizeof(struct qm_portal *), GFP_KERNEL);
++	if (!portal_array)
++		return -ENOMEM;
++
+ 	/* Ensure the release operation cannot be migrated to another
+ 	   CPU as CPU specific variables may be needed during cleanup */
+ #ifdef CONFIG_PREEMPT_RT_FULL
+@@ -612,18 +618,14 @@ static int usdpaa_release(struct inode *
+ 		qm_alloced_portal = qm_get_unused_portal();
+ 		if (!qm_alloced_portal) {
+ 			pr_crit("No QMan portal avalaible for cleanup\n");
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-			migrate_enable();
+-#endif
+-			return -1;
++			err = -1;
++			goto done;
+ 		}
+ 		qm_cleanup_portal = kmalloc(sizeof(struct qm_portal),
+ 					    GFP_KERNEL);
+ 		if (!qm_cleanup_portal) {
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-			migrate_enable();
+-#endif
+-			return -ENOMEM;
++			err = -ENOMEM;
++			goto done;
+ 		}
+ 		init_qm_portal(qm_alloced_portal, qm_cleanup_portal);
+ 		portal_array[portal_count] = qm_cleanup_portal;
+@@ -633,18 +635,14 @@ static int usdpaa_release(struct inode *
+ 		bm_alloced_portal = bm_get_unused_portal();
+ 		if (!bm_alloced_portal) {
+ 			pr_crit("No BMan portal avalaible for cleanup\n");
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-			migrate_enable();
+-#endif
+-			return -1;
++			err = -1;
++			goto done;
+ 		}
+ 		bm_cleanup_portal = kmalloc(sizeof(struct bm_portal),
+ 					    GFP_KERNEL);
+ 		if (!bm_cleanup_portal) {
+-#ifdef CONFIG_PREEMPT_RT_FULL
+-			migrate_enable();
+-#endif
+-			return -ENOMEM;
++			err = -ENOMEM;
++			goto done;
+ 		}
+ 		init_bm_portal(bm_alloced_portal, bm_cleanup_portal);
+ 	}
+@@ -721,10 +719,12 @@ static int usdpaa_release(struct inode *
+ 	}
+ 
+ 	kfree(ctx);
++done:
+ #ifdef CONFIG_PREEMPT_RT_FULL
+ 	migrate_enable();
+ #endif
+-	return 0;
++	kfree(portal_array);
++	return err;
+ }
+ 
+ static int check_mmap_dma(struct ctx *ctx, struct vm_area_struct *vma,
