[Qemu-devel] [PATCH] ppc440: Avoid reporting error when reading non-existent RAM slot

BALATON Zoltan posted 1 patch 5 years, 3 months ago
Test asan passed
Test checkpatch passed
Test docker-clang@ubuntu passed
Test docker-mingw@fedora passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20190109224919.2082F7456A2@zero.eik.bme.hu
Maintainers: David Gibson <david@gibson.dropbear.id.au>
hw/ppc/ppc440_uc.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
[Qemu-devel] [PATCH] ppc440: Avoid reporting error when reading non-existent RAM slot
Posted by BALATON Zoltan 5 years, 3 months ago
When reading base register of RAM slot with no RAM we should not try
to calculate register value because that will result printing an error
due to invalid RAM size. Just return 0 without the error in this case.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
---
 hw/ppc/ppc440_uc.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c
index c489368905..9130eb314c 100644
--- a/hw/ppc/ppc440_uc.c
+++ b/hw/ppc/ppc440_uc.c
@@ -613,8 +613,10 @@ static uint32_t dcr_read_sdram(void *opaque, int dcrn)
     case SDRAM_R1BAS:
     case SDRAM_R2BAS:
     case SDRAM_R3BAS:
-        ret = sdram_bcr(sdram->ram_bases[dcrn - SDRAM_R0BAS],
-                        sdram->ram_sizes[dcrn - SDRAM_R0BAS]);
+        if (sdram->ram_sizes[dcrn - SDRAM_R0BAS]) {
+            ret = sdram_bcr(sdram->ram_bases[dcrn - SDRAM_R0BAS],
+                            sdram->ram_sizes[dcrn - SDRAM_R0BAS]);
+        }
         break;
     case SDRAM_CONF1HB:
     case SDRAM_CONF1LL:
-- 
2.13.7


Re: [Qemu-devel] [PATCH] ppc440: Avoid reporting error when reading non-existent RAM slot
Posted by David Gibson 5 years, 3 months ago
On Wed, Jan 09, 2019 at 11:37:33PM +0100, BALATON Zoltan wrote:
> When reading base register of RAM slot with no RAM we should not try
> to calculate register value because that will result printing an error
> due to invalid RAM size. Just return 0 without the error in this case.
> 
> Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>

Applied, thanks.

> ---
>  hw/ppc/ppc440_uc.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c
> index c489368905..9130eb314c 100644
> --- a/hw/ppc/ppc440_uc.c
> +++ b/hw/ppc/ppc440_uc.c
> @@ -613,8 +613,10 @@ static uint32_t dcr_read_sdram(void *opaque, int dcrn)
>      case SDRAM_R1BAS:
>      case SDRAM_R2BAS:
>      case SDRAM_R3BAS:
> -        ret = sdram_bcr(sdram->ram_bases[dcrn - SDRAM_R0BAS],
> -                        sdram->ram_sizes[dcrn - SDRAM_R0BAS]);
> +        if (sdram->ram_sizes[dcrn - SDRAM_R0BAS]) {
> +            ret = sdram_bcr(sdram->ram_bases[dcrn - SDRAM_R0BAS],
> +                            sdram->ram_sizes[dcrn - SDRAM_R0BAS]);
> +        }
>          break;
>      case SDRAM_CONF1HB:
>      case SDRAM_CONF1LL:

-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson