From: Girish Pathak <girish.pathak at arm.com> This change adds some debug assertions e.g to catch NULL pointer errors missing in PL11Lcd and HdLcd platform libraries.
Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Girish Pathak <[email protected]> Signed-off-by: Evan Lloyd <[email protected]> --- Notes: V3: - Use ASSERT_EFI_ERROR (Status) in place of ASSERT (FALSE) [Ard] Done [Girish] Platform/ARM/VExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c | 22 +++++++++++++++++- Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c | 24 +++++++++++++++++++- 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/Platform/ARM/VExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c b/Platform/ARM/VExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c index 80603f04df3793b8b62196990c846de9ba8f130d..5247b8e038ac45ba800d0f6c79f8718c99b951da 100644 --- a/Platform/ARM/VExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c +++ b/Platform/ARM/VExpressPkg/Library/HdLcdArmVExpressLib/HdLcdArmVExpress.c @@ -153,6 +153,9 @@ LcdPlatformGetVram ( EFI_STATUS Status; EFI_ALLOCATE_TYPE AllocationType; + ASSERT (VramBaseAddress != NULL); + ASSERT (VramSize != NULL); + // Set the vram size *VramSize = LCD_VRAM_SIZE; @@ -171,6 +174,7 @@ LcdPlatformGetVram ( VramBaseAddress ); if (EFI_ERROR (Status)) { + ASSERT_EFI_ERROR (Status); return Status; } @@ -181,8 +185,8 @@ LcdPlatformGetVram ( *VramSize, EFI_MEMORY_WC ); - ASSERT_EFI_ERROR (Status); if (EFI_ERROR (Status)) { + ASSERT_EFI_ERROR (Status); gBS->FreePages (*VramBaseAddress, EFI_SIZE_TO_PAGES (*VramSize)); return Status; } @@ -221,6 +225,7 @@ LcdPlatformSetMode ( EFI_STATUS Status; if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -279,7 +284,10 @@ LcdPlatformQueryMode ( OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info ) { + ASSERT (Info != NULL); + if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -343,7 +351,18 @@ LcdPlatformGetTimings ( OUT UINT32* VFrontPorch ) { + // One of the pointers is NULL + ASSERT (HRes != NULL); + ASSERT (HSync != NULL); + ASSERT (HBackPorch != NULL); + ASSERT (HFrontPorch != NULL); + ASSERT (VRes != NULL); + ASSERT (VSync != NULL); + ASSERT (VBackPorch != NULL); + ASSERT (VFrontPorch != NULL); + if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -376,6 +395,7 @@ LcdPlatformGetBpp ( ) { if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } diff --git a/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c b/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c index 3e3102623ebc46cbe31b7f3500021f53f2281d1b..3d2ec7b1bf658a5fd644cd82fd1341245ba0f5d3 100644 --- a/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c +++ b/Platform/ARM/VExpressPkg/Library/PL111LcdArmVExpressLib/PL111LcdArmVExpress.c @@ -205,6 +205,9 @@ LcdPlatformGetVram ( Status = EFI_SUCCESS; + ASSERT (VramBaseAddress != NULL); + ASSERT (VramSize != NULL); + // Is it on the motherboard or on the daughterboard? switch (PL111_CLCD_SITE) { @@ -225,6 +228,7 @@ LcdPlatformGetVram ( VramBaseAddress ); if (EFI_ERROR (Status)) { + ASSERT_EFI_ERROR (Status); return Status; } @@ -235,8 +239,8 @@ LcdPlatformGetVram ( *VramSize, EFI_MEMORY_WC ); - ASSERT_EFI_ERROR (Status); if (EFI_ERROR (Status)) { + ASSERT_EFI_ERROR (Status); gBS->FreePages (*VramBaseAddress, EFI_SIZE_TO_PAGES (*VramSize)); return Status; } @@ -294,6 +298,7 @@ LcdPlatformSetMode ( UINT32 SysId; if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -369,7 +374,10 @@ LcdPlatformQueryMode ( OUT EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *Info ) { + ASSERT (Info != NULL); + if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -433,7 +441,18 @@ LcdPlatformGetTimings ( OUT UINT32* VFrontPorch ) { + // One of the pointers is NULL + ASSERT (HRes != NULL); + ASSERT (HSync != NULL); + ASSERT (HBackPorch != NULL); + ASSERT (HFrontPorch != NULL); + ASSERT (VRes != NULL); + ASSERT (VSync != NULL); + ASSERT (VBackPorch != NULL); + ASSERT (VFrontPorch != NULL); + if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } @@ -465,7 +484,10 @@ LcdPlatformGetBpp ( OUT LCD_BPP * Bpp ) { + ASSERT (Bpp != NULL); + if (ModeNumber >= LcdPlatformGetMaxMode ()) { + ASSERT (FALSE); return EFI_INVALID_PARAMETER; } -- 'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)' _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

