From b268d78f2a333ed69836a3f41d6ec8f6e620d998 Mon Sep 17 00:00:00 2001 From: Martin Roth Date: Wed, 11 Jan 2017 10:57:09 -0700 Subject: [PATCH] UPSTREAM: soc/marvell/mvmap2315: Mark mvmap2315_reset() as noreturn mvmap2315_reset() is called from locations where we're checking for NULL pointers. Because coverity can't tell from the code that the functions are not returning, it's showing errors of accessing pointers after we've determined that they're invalid. Mark it as noreturn, and add a loop in case the reset isn't on the next instruction. This probably isn't needed, but shouldn't hurt. BUG=none BRANCH=none TEST=none Change-Id: Icabde50124ed8206a0a114cd10002ef81a770f57 Signed-off-by: Patrick Georgi Original-Commit-Id: 3051cd9265b8eb29742a66fc67db083289fa07e5 Original-Found-by: Coverity Scan #1362809 Original-Change-Id: If93084629d5c2c8dc232558f2559b78b1ca5de7c Original-Signed-off-by: Martin Roth Original-Reviewed-on: https://review.coreboot.org/18103 Original-Tested-by: build bot (Jenkins) Original-Reviewed-by: Paul Menzel Original-Reviewed-by: Nico Huber Reviewed-on: https://chromium-review.googlesource.com/428257 Commit-Ready: Aaron Durbin --- src/soc/marvell/mvmap2315/reset.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/soc/marvell/mvmap2315/reset.c b/src/soc/marvell/mvmap2315/reset.c index 531f4a0b50..40067ed7ab 100644 --- a/src/soc/marvell/mvmap2315/reset.c +++ b/src/soc/marvell/mvmap2315/reset.c @@ -21,8 +21,9 @@ #include #include -void mvmap2315_reset(void) +void __attribute__((noreturn)) mvmap2315_reset(void) { clrbits_le32(&mvmap2315_mpmu_clk->resetmcu, MVMAP2315_MCU_RST_EN); clrbits_le32(&mvmap2315_mpmu_clk->resetap, MVMAP2315_AP_RST_EN); + for (;;) ; }