From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: None (no SPF record) identity=mailfrom; client-ip=2a00:1450:4010:c07::243; helo=mail-lf0-x243.google.com; envelope-from=mw@semihalf.com; receiver=edk2-devel@lists.01.org Received: from mail-lf0-x243.google.com (mail-lf0-x243.google.com [IPv6:2a00:1450:4010:c07::243]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id C8FA520D7ADEF for ; Thu, 7 Jun 2018 05:55:52 -0700 (PDT) Received: by mail-lf0-x243.google.com with SMTP id 36-v6so14510163lfr.11 for ; Thu, 07 Jun 2018 05:55:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=semihalf-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id; bh=90ylP3+zkXilLBtUvxzJZrCe8OIpZJMVuwX15ZwojWg=; b=E9kBp6Gt8d+fIpS5Z+EArqRE4OQNbJSf/vZlvvLDrz71/UMQTgjhPuDdBXSprodpH5 CB8D5rouMZJvm/tH8ZtCl3UQLEGWKLCgxRiJng7MR7lZ88UQglg6hXYN7w7CrbE1K5w8 itM3fKVpQiR2VCEZb3yfKtu3y781aQGTVZANQxogFRGQWpue8/UGcpdA7r4FFVolSAhT sa55Fh5YVqnCZf1OlzMSlDq+Tmww8hJwgctp6bVNwOuQYKS6CroBOKwuloRizCSkgs3c PoB5qDxluBH6XpnUsb++RcHec98mFfpuHCEBnEY722lJqQIMm3MZWxFFhvFTuMddkPnd bg0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=90ylP3+zkXilLBtUvxzJZrCe8OIpZJMVuwX15ZwojWg=; b=nlVFqHuAMcisVRmVbzXr9ElQ0dp3JUXAMpI0YY1ouAB9lJw0s5YdekDCT4yTH5QI9x ZWt0rfZQmv2YNy2mRzAq1t2qJoooNNZP6WhpkuOv7zVjtYxsXsyhfKdST6lrG8XnwQMS IDAA4fj79Pk31QwVE+FzLZRWQj6k8w98Kfg5g4oQqD+qgdirU136hBWEBwO4TZxzyht+ XrYCUXt04oM4Fut5nGgZz5R974pqwfCWjtDrcBoNKoLqOujiJcMk55yqCH6JP6Hsf3EF B3IObJ0gRHW2XBDHre4zZ9S5vpRQpc8gkAQ8tiGcoa9qoaPjLCnev1iE6++vXWJc6i9c QsYg== X-Gm-Message-State: APt69E01NwAf/YLoxxb2rIB6dR0YtaCLqBDEm1joagPr60j7z9mpk+S/ Ztf79HeeAoehRVaN6wMWFI8nEHPWgKo= X-Google-Smtp-Source: ADUXVKLgH5ZjK/ihozNJG4jcTQGVJh13sE46Z3bJpAJ/XXI5UQKhCBTSuWoCW67Ji33VN05IJ2Pr5A== X-Received: by 2002:a2e:1dd9:: with SMTP id w86-v6mr1445778lje.110.1528376149829; Thu, 07 Jun 2018 05:55:49 -0700 (PDT) Received: from gilgamesh.semihalf.com (31-172-191-173.noc.fibertech.net.pl. [31.172.191.173]) by smtp.gmail.com with ESMTPSA id i68-v6sm2471413lfh.9.2018.06.07.05.55.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 07 Jun 2018 05:55:48 -0700 (PDT) From: Marcin Wojtas To: edk2-devel@lists.01.org Cc: leif.lindholm@linaro.org, ard.biesheuvel@linaro.org, mw@semihalf.com, jsd@semihalf.com, jinghua@marvell.com, jaz@semihalf.com, nadavh@marvell.com Date: Thu, 7 Jun 2018 14:55:18 +0200 Message-Id: <1528376118-19690-1-git-send-email-mw@semihalf.com> X-Mailer: git-send-email 2.7.4 Subject: [platforms PATCH 1/1] Marvell/Drivers: Pp2Dxe: Fix cleaning of the BM pools X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jun 2018 12:55:53 -0000 Hitherto mechanism of using static flag indicating Buffer Manager disabled state was wrong and resulted in cleaning only one controller's pools. This caused bad page state when OS booted and attempted to use the buffers. This patch implements a fix, ensuring all controllers will clean the Buffer Manager during ExitBootServices. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marcin Wojtas --- Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c | 7 ++++--- Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.h | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c b/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c index b0a38b3..3ed10f6 100644 --- a/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c +++ b/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.c @@ -258,6 +258,8 @@ Pp2DxeBmStart ( } } + Mvpp2Shared->BmEnabled = TRUE; + return EFI_SUCCESS; } @@ -669,15 +671,14 @@ Pp2DxeHalt ( PP2DXE_CONTEXT *Pp2Context = Context; PP2DXE_PORT *Port = &Pp2Context->Port; MVPP2_SHARED *Mvpp2Shared = Pp2Context->Port.Priv; - STATIC BOOLEAN CommonPartHalted = FALSE; INTN Index; - if (!CommonPartHalted) { + if (Mvpp2Shared->BmEnabled) { for (Index = 0; Index < MVPP2_MAX_PORT; Index++) { Mvpp2BmStop(Mvpp2Shared, Index); } - CommonPartHalted = TRUE; + Mvpp2Shared->BmEnabled = FALSE; } Mvpp2TxqDrainSet(Port, 0, TRUE); diff --git a/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.h b/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.h index 60f40be..b8a5dae 100644 --- a/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.h +++ b/Silicon/Marvell/Drivers/Net/Pp2Dxe/Pp2Dxe.h @@ -290,6 +290,7 @@ typedef struct { /* BM pools */ MVPP2_BMS_POOL *BmPools[MVPP2_MAX_PORT]; + BOOLEAN BmEnabled; /* PRS shadow table */ MVPP2_PRS_SHADOW *PrsShadow; -- 2.7.4