aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-5.4/701-net-0106-sdk_fman-avoid-array-overflow-error-in-fman-port-ini.patch
blob: 4490bc322ce666fa783315dbd2e4491d17834c21 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
From 5dc04d9dc9ac5d6eca6f1602a7b1c3b5a61625f4 Mon Sep 17 00:00:00 2001
From: Florinel Iordache <florinel.iordache@nxp.com>
Date: Mon, 4 Feb 2019 09:45:54 +0200
Subject: [PATCH] sdk_fman: avoid array overflow error in fman port init

Perform a verification of external buffer pools used which can cause array
overflow error in port init function SetExtBufferPools() if it was set to
value 1 via fman port API

Signed-off-by: Florinel Iordache <florinel.iordache@nxp.com>
---
 drivers/net/ethernet/freescale/sdk_fman/Peripherals/FM/Port/fm_port.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/drivers/net/ethernet/freescale/sdk_fman/Peripherals/FM/Port/fm_port.c
+++ b/drivers/net/ethernet/freescale/sdk_fman/Peripherals/FM/Port/fm_port.c
@@ -581,7 +581,8 @@ static t_Error SetExtBufferPools(t_FmPor
     p_FmPort->rxPoolsParams.numOfPools = p_ExtBufPools->numOfPoolsUsed;
     p_FmPort->rxPoolsParams.largestBufSize =
             sizesArray[orderedArray[p_ExtBufPools->numOfPoolsUsed - 1]];
-    p_FmPort->rxPoolsParams.secondLargestBufSize =
+    if (p_ExtBufPools->numOfPoolsUsed > 1)
+        p_FmPort->rxPoolsParams.secondLargestBufSize =
             sizesArray[orderedArray[p_ExtBufPools->numOfPoolsUsed - 2]];
 
     /* FMBM_RMPD reg. - pool depletion */