diff mbox series

[2/2] hw/ppc/ppc440_uc: Remove dead l2sram_update_mappings()

Message ID 20231011124312.60476-3-philmd@linaro.org
State New
Headers show
Series hw/ppc/ppc440_uc: Maintain and remove dead code | expand

Commit Message

Philippe Mathieu-Daudé Oct. 11, 2023, 12:43 p.m. UTC
Apparently l2sram_update_mappings() bit-rotted over time,
when defining MAP_L2SRAM we get:

  hw/ppc/ppc440_uc.c:83:17: error: no member named 'isarc' in 'struct ppc4xx_l2sram_t'
      if (l2sram->isarc != isarc ||
          ~~~~~~  ^
  hw/ppc/ppc440_uc.c:84:18: error: no member named 'isacntl' in 'struct ppc4xx_l2sram_t'
          (l2sram->isacntl & 0x80000000) != (isacntl & 0x80000000)) {
           ~~~~~~  ^
  hw/ppc/ppc440_uc.c:85:21: error: no member named 'isacntl' in 'struct ppc4xx_l2sram_t'
          if (l2sram->isacntl & 0x80000000) {
              ~~~~~~  ^
  hw/ppc/ppc440_uc.c:88:50: error: no member named 'isarc_ram' in 'struct ppc4xx_l2sram_t'
                                          &l2sram->isarc_ram);
                                           ~~~~~~  ^
  hw/ppc/ppc440_uc.c:93:50: error: no member named 'isarc_ram' in 'struct ppc4xx_l2sram_t'
                                          &l2sram->isarc_ram);
                                           ~~~~~~  ^
  hw/ppc/ppc440_uc.c:96:17: error: no member named 'dsarc' in 'struct ppc4xx_l2sram_t'
      if (l2sram->dsarc != dsarc ||
          ~~~~~~  ^
  hw/ppc/ppc440_uc.c:97:18: error: no member named 'dsacntl' in 'struct ppc4xx_l2sram_t'
          (l2sram->dsacntl & 0x80000000) != (dsacntl & 0x80000000)) {
           ~~~~~~  ^
  hw/ppc/ppc440_uc.c:98:21: error: no member named 'dsacntl' in 'struct ppc4xx_l2sram_t'
          if (l2sram->dsacntl & 0x80000000) {
              ~~~~~~  ^
  hw/ppc/ppc440_uc.c:100:52: error: no member named 'dsarc' in 'struct ppc4xx_l2sram_t'
              if (!(isacntl & 0x80000000) || l2sram->dsarc != isarc) {
                                             ~~~~~~  ^
  hw/ppc/ppc440_uc.c:103:54: error: no member named 'dsarc_ram' in 'struct ppc4xx_l2sram_t'
                                              &l2sram->dsarc_ram);
                                               ~~~~~~  ^
  hw/ppc/ppc440_uc.c:111:54: error: no member named 'dsarc_ram' in 'struct ppc4xx_l2sram_t'
                                              &l2sram->dsarc_ram);
                                               ~~~~~~  ^

Remove that dead code.

Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
 hw/ppc/ppc440_uc.c | 40 ----------------------------------------
 1 file changed, 40 deletions(-)

Comments

BALATON Zoltan Oct. 11, 2023, 1:31 p.m. UTC | #1
On Wed, 11 Oct 2023, Philippe Mathieu-Daudé wrote:
> Apparently l2sram_update_mappings() bit-rotted over time,
> when defining MAP_L2SRAM we get:
>
>  hw/ppc/ppc440_uc.c:83:17: error: no member named 'isarc' in 'struct ppc4xx_l2sram_t'
>      if (l2sram->isarc != isarc ||
>          ~~~~~~  ^
>  hw/ppc/ppc440_uc.c:84:18: error: no member named 'isacntl' in 'struct ppc4xx_l2sram_t'
>          (l2sram->isacntl & 0x80000000) != (isacntl & 0x80000000)) {
>           ~~~~~~  ^
>  hw/ppc/ppc440_uc.c:85:21: error: no member named 'isacntl' in 'struct ppc4xx_l2sram_t'
>          if (l2sram->isacntl & 0x80000000) {
>              ~~~~~~  ^
>  hw/ppc/ppc440_uc.c:88:50: error: no member named 'isarc_ram' in 'struct ppc4xx_l2sram_t'
>                                          &l2sram->isarc_ram);
>                                           ~~~~~~  ^
>  hw/ppc/ppc440_uc.c:93:50: error: no member named 'isarc_ram' in 'struct ppc4xx_l2sram_t'
>                                          &l2sram->isarc_ram);
>                                           ~~~~~~  ^
>  hw/ppc/ppc440_uc.c:96:17: error: no member named 'dsarc' in 'struct ppc4xx_l2sram_t'
>      if (l2sram->dsarc != dsarc ||
>          ~~~~~~  ^
>  hw/ppc/ppc440_uc.c:97:18: error: no member named 'dsacntl' in 'struct ppc4xx_l2sram_t'
>          (l2sram->dsacntl & 0x80000000) != (dsacntl & 0x80000000)) {
>           ~~~~~~  ^
>  hw/ppc/ppc440_uc.c:98:21: error: no member named 'dsacntl' in 'struct ppc4xx_l2sram_t'
>          if (l2sram->dsacntl & 0x80000000) {
>              ~~~~~~  ^
>  hw/ppc/ppc440_uc.c:100:52: error: no member named 'dsarc' in 'struct ppc4xx_l2sram_t'
>              if (!(isacntl & 0x80000000) || l2sram->dsarc != isarc) {
>                                             ~~~~~~  ^
>  hw/ppc/ppc440_uc.c:103:54: error: no member named 'dsarc_ram' in 'struct ppc4xx_l2sram_t'
>                                              &l2sram->dsarc_ram);
>                                               ~~~~~~  ^
>  hw/ppc/ppc440_uc.c:111:54: error: no member named 'dsarc_ram' in 'struct ppc4xx_l2sram_t'
>                                              &l2sram->dsarc_ram);
>                                               ~~~~~~  ^
>
> Remove that dead code.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
> hw/ppc/ppc440_uc.c | 40 ----------------------------------------
> 1 file changed, 40 deletions(-)
>
> diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c
> index 4181c843a8..643a79e330 100644
> --- a/hw/ppc/ppc440_uc.c
> +++ b/hw/ppc/ppc440_uc.c
> @@ -73,46 +73,6 @@ typedef struct ppc4xx_l2sram_t {
>     uint32_t isram0[11];
> } ppc4xx_l2sram_t;
>
> -#ifdef MAP_L2SRAM
> -static void l2sram_update_mappings(ppc4xx_l2sram_t *l2sram,
> -                                   uint32_t isarc, uint32_t isacntl,
> -                                   uint32_t dsarc, uint32_t dsacntl)

If you remove this then nobody will remember this could be modelled or may 
be fixed so maybe leave it as a reminder for now.

Regards,
BALATON Zoltan

> -{
> -    if (l2sram->isarc != isarc ||
> -        (l2sram->isacntl & 0x80000000) != (isacntl & 0x80000000)) {
> -        if (l2sram->isacntl & 0x80000000) {
> -            /* Unmap previously assigned memory region */
> -            memory_region_del_subregion(get_system_memory(),
> -                                        &l2sram->isarc_ram);
> -        }
> -        if (isacntl & 0x80000000) {
> -            /* Map new instruction memory region */
> -            memory_region_add_subregion(get_system_memory(), isarc,
> -                                        &l2sram->isarc_ram);
> -        }
> -    }
> -    if (l2sram->dsarc != dsarc ||
> -        (l2sram->dsacntl & 0x80000000) != (dsacntl & 0x80000000)) {
> -        if (l2sram->dsacntl & 0x80000000) {
> -            /* Beware not to unmap the region we just mapped */
> -            if (!(isacntl & 0x80000000) || l2sram->dsarc != isarc) {
> -                /* Unmap previously assigned memory region */
> -                memory_region_del_subregion(get_system_memory(),
> -                                            &l2sram->dsarc_ram);
> -            }
> -        }
> -        if (dsacntl & 0x80000000) {
> -            /* Beware not to remap the region we just mapped */
> -            if (!(isacntl & 0x80000000) || dsarc != isarc) {
> -                /* Map new data memory region */
> -                memory_region_add_subregion(get_system_memory(), dsarc,
> -                                            &l2sram->dsarc_ram);
> -            }
> -        }
> -    }
> -}
> -#endif
> -
> static uint32_t dcr_read_l2sram(void *opaque, int dcrn)
> {
>     ppc4xx_l2sram_t *l2sram = opaque;
>
Philippe Mathieu-Daudé Oct. 11, 2023, 1:41 p.m. UTC | #2
Hi Zoltan,

On 11/10/23 15:31, BALATON Zoltan wrote:
> On Wed, 11 Oct 2023, Philippe Mathieu-Daudé wrote:
>> Apparently l2sram_update_mappings() bit-rotted over time,
>> when defining MAP_L2SRAM we get:
>>
>>  hw/ppc/ppc440_uc.c:83:17: error: no member named 'isarc' in 'struct 
>> ppc4xx_l2sram_t'
>>      if (l2sram->isarc != isarc ||
>>          ~~~~~~  ^
>>  hw/ppc/ppc440_uc.c:84:18: error: no member named 'isacntl' in 'struct 
>> ppc4xx_l2sram_t'
>>          (l2sram->isacntl & 0x80000000) != (isacntl & 0x80000000)) {
>>           ~~~~~~  ^
>>  hw/ppc/ppc440_uc.c:85:21: error: no member named 'isacntl' in 'struct 
>> ppc4xx_l2sram_t'
>>          if (l2sram->isacntl & 0x80000000) {
>>              ~~~~~~  ^
>>  hw/ppc/ppc440_uc.c:88:50: error: no member named 'isarc_ram' in 
>> 'struct ppc4xx_l2sram_t'
>>                                          &l2sram->isarc_ram);
>>                                           ~~~~~~  ^
>>  hw/ppc/ppc440_uc.c:93:50: error: no member named 'isarc_ram' in 
>> 'struct ppc4xx_l2sram_t'
>>                                          &l2sram->isarc_ram);
>>                                           ~~~~~~  ^
>>  hw/ppc/ppc440_uc.c:96:17: error: no member named 'dsarc' in 'struct 
>> ppc4xx_l2sram_t'
>>      if (l2sram->dsarc != dsarc ||
>>          ~~~~~~  ^
>>  hw/ppc/ppc440_uc.c:97:18: error: no member named 'dsacntl' in 'struct 
>> ppc4xx_l2sram_t'
>>          (l2sram->dsacntl & 0x80000000) != (dsacntl & 0x80000000)) {
>>           ~~~~~~  ^
>>  hw/ppc/ppc440_uc.c:98:21: error: no member named 'dsacntl' in 'struct 
>> ppc4xx_l2sram_t'
>>          if (l2sram->dsacntl & 0x80000000) {
>>              ~~~~~~  ^
>>  hw/ppc/ppc440_uc.c:100:52: error: no member named 'dsarc' in 'struct 
>> ppc4xx_l2sram_t'
>>              if (!(isacntl & 0x80000000) || l2sram->dsarc != isarc) {
>>                                             ~~~~~~  ^
>>  hw/ppc/ppc440_uc.c:103:54: error: no member named 'dsarc_ram' in 
>> 'struct ppc4xx_l2sram_t'
>>                                              &l2sram->dsarc_ram);
>>                                               ~~~~~~  ^
>>  hw/ppc/ppc440_uc.c:111:54: error: no member named 'dsarc_ram' in 
>> 'struct ppc4xx_l2sram_t'
>>                                              &l2sram->dsarc_ram);
>>                                               ~~~~~~  ^
>>
>> Remove that dead code.

I missed to remove:

-- >8 --
diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c
index 3a66b0c7f7..1312aa2080 100644
--- a/hw/ppc/ppc440_uc.c
+++ b/hw/ppc/ppc440_uc.c
@@ -154,7 +154,6 @@ static void dcr_write_l2sram(void *opaque, int dcrn, 
uint32_t val)
          /*l2sram->isram1[dcrn - DCR_L2CACHE_BASE] = val;*/
          break;
      }
-    /*l2sram_update_mappings(l2sram, isarc, isacntl, dsarc, dsacntl);*/
  }

  static void l2sram_reset(void *opaque)
@@ -164,7 +163,6 @@ static void l2sram_reset(void *opaque)
      memset(l2sram->l2cache, 0, sizeof(l2sram->l2cache));
      l2sram->l2cache[DCR_L2CACHE_STAT - DCR_L2CACHE_BASE] = 0x80000000;
      memset(l2sram->isram0, 0, sizeof(l2sram->isram0));
-    /*l2sram_update_mappings(l2sram, isarc, isacntl, dsarc, dsacntl);*/
  }
---

>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>> ---
>> hw/ppc/ppc440_uc.c | 40 ----------------------------------------
>> 1 file changed, 40 deletions(-)
>>
>> diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c
>> index 4181c843a8..643a79e330 100644
>> --- a/hw/ppc/ppc440_uc.c
>> +++ b/hw/ppc/ppc440_uc.c
>> @@ -73,46 +73,6 @@ typedef struct ppc4xx_l2sram_t {
>>     uint32_t isram0[11];
>> } ppc4xx_l2sram_t;
>>
>> -#ifdef MAP_L2SRAM
>> -static void l2sram_update_mappings(ppc4xx_l2sram_t *l2sram,
>> -                                   uint32_t isarc, uint32_t isacntl,
>> -                                   uint32_t dsarc, uint32_t dsacntl)
> 
> If you remove this then nobody will remember this could be modelled or 
> may be fixed so maybe leave it as a reminder for now.

We can keep this code if someone fix it and enable it (convert the
definition to a static boolean). Some APIs are being modified, we can
not test modifications in such dead code. Even converting to a comment
doesn't seem useful.

Maybe you can add a comment "If you are interested in ..., see
l2sram_update_mappings() draft implementation in
https://lists.gnu.org/archive/html/qemu-devel/2018-02/msg04261.html"?

> Regards,
> BALATON Zoltan
BALATON Zoltan Oct. 11, 2023, 1:49 p.m. UTC | #3
On Wed, 11 Oct 2023, Philippe Mathieu-Daudé wrote:
> Hi Zoltan,
>
> On 11/10/23 15:31, BALATON Zoltan wrote:
>> On Wed, 11 Oct 2023, Philippe Mathieu-Daudé wrote:
>>> Apparently l2sram_update_mappings() bit-rotted over time,
>>> when defining MAP_L2SRAM we get:
>>> 
>>>  hw/ppc/ppc440_uc.c:83:17: error: no member named 'isarc' in 'struct 
>>> ppc4xx_l2sram_t'
>>>      if (l2sram->isarc != isarc ||
>>>          ~~~~~~  ^
>>>  hw/ppc/ppc440_uc.c:84:18: error: no member named 'isacntl' in 'struct 
>>> ppc4xx_l2sram_t'
>>>          (l2sram->isacntl & 0x80000000) != (isacntl & 0x80000000)) {
>>>           ~~~~~~  ^
>>>  hw/ppc/ppc440_uc.c:85:21: error: no member named 'isacntl' in 'struct 
>>> ppc4xx_l2sram_t'
>>>          if (l2sram->isacntl & 0x80000000) {
>>>              ~~~~~~  ^
>>>  hw/ppc/ppc440_uc.c:88:50: error: no member named 'isarc_ram' in 'struct 
>>> ppc4xx_l2sram_t'
>>>                                          &l2sram->isarc_ram);
>>>                                           ~~~~~~  ^
>>>  hw/ppc/ppc440_uc.c:93:50: error: no member named 'isarc_ram' in 'struct 
>>> ppc4xx_l2sram_t'
>>>                                          &l2sram->isarc_ram);
>>>                                           ~~~~~~  ^
>>>  hw/ppc/ppc440_uc.c:96:17: error: no member named 'dsarc' in 'struct 
>>> ppc4xx_l2sram_t'
>>>      if (l2sram->dsarc != dsarc ||
>>>          ~~~~~~  ^
>>>  hw/ppc/ppc440_uc.c:97:18: error: no member named 'dsacntl' in 'struct 
>>> ppc4xx_l2sram_t'
>>>          (l2sram->dsacntl & 0x80000000) != (dsacntl & 0x80000000)) {
>>>           ~~~~~~  ^
>>>  hw/ppc/ppc440_uc.c:98:21: error: no member named 'dsacntl' in 'struct 
>>> ppc4xx_l2sram_t'
>>>          if (l2sram->dsacntl & 0x80000000) {
>>>              ~~~~~~  ^
>>>  hw/ppc/ppc440_uc.c:100:52: error: no member named 'dsarc' in 'struct 
>>> ppc4xx_l2sram_t'
>>>              if (!(isacntl & 0x80000000) || l2sram->dsarc != isarc) {
>>>                                             ~~~~~~  ^
>>>  hw/ppc/ppc440_uc.c:103:54: error: no member named 'dsarc_ram' in 'struct 
>>> ppc4xx_l2sram_t'
>>>                                              &l2sram->dsarc_ram);
>>>                                               ~~~~~~  ^
>>>  hw/ppc/ppc440_uc.c:111:54: error: no member named 'dsarc_ram' in 'struct 
>>> ppc4xx_l2sram_t'
>>>                                              &l2sram->dsarc_ram);
>>>                                               ~~~~~~  ^
>>> 
>>> Remove that dead code.
>
> I missed to remove:
>
> -- >8 --
> diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c
> index 3a66b0c7f7..1312aa2080 100644
> --- a/hw/ppc/ppc440_uc.c
> +++ b/hw/ppc/ppc440_uc.c
> @@ -154,7 +154,6 @@ static void dcr_write_l2sram(void *opaque, int dcrn, 
> uint32_t val)
>         /*l2sram->isram1[dcrn - DCR_L2CACHE_BASE] = val;*/
>         break;
>     }
> -    /*l2sram_update_mappings(l2sram, isarc, isacntl, dsarc, dsacntl);*/
> }

Well, all of this func does nothing and just here so accessing these DCRs 
won't crash but it already has a FIXME comment at the beginning noting 
that, so in that case it's probably OK to remove the unfinished func as we 
still have a reminder here. So then:

Reviewed-by: BALATON Zoltan <balaton@eik.bme.hu>

Regards,
BALATON Zoltan

> static void l2sram_reset(void *opaque)
> @@ -164,7 +163,6 @@ static void l2sram_reset(void *opaque)
>     memset(l2sram->l2cache, 0, sizeof(l2sram->l2cache));
>     l2sram->l2cache[DCR_L2CACHE_STAT - DCR_L2CACHE_BASE] = 0x80000000;
>     memset(l2sram->isram0, 0, sizeof(l2sram->isram0));
> -    /*l2sram_update_mappings(l2sram, isarc, isacntl, dsarc, dsacntl);*/
> }
> ---
>
>>> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
>>> ---
>>> hw/ppc/ppc440_uc.c | 40 ----------------------------------------
>>> 1 file changed, 40 deletions(-)
>>> 
>>> diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c
>>> index 4181c843a8..643a79e330 100644
>>> --- a/hw/ppc/ppc440_uc.c
>>> +++ b/hw/ppc/ppc440_uc.c
>>> @@ -73,46 +73,6 @@ typedef struct ppc4xx_l2sram_t {
>>>     uint32_t isram0[11];
>>> } ppc4xx_l2sram_t;
>>> 
>>> -#ifdef MAP_L2SRAM
>>> -static void l2sram_update_mappings(ppc4xx_l2sram_t *l2sram,
>>> -                                   uint32_t isarc, uint32_t isacntl,
>>> -                                   uint32_t dsarc, uint32_t dsacntl)
>> 
>> If you remove this then nobody will remember this could be modelled or may 
>> be fixed so maybe leave it as a reminder for now.
>
> We can keep this code if someone fix it and enable it (convert the
> definition to a static boolean). Some APIs are being modified, we can
> not test modifications in such dead code. Even converting to a comment
> doesn't seem useful.
>
> Maybe you can add a comment "If you are interested in ..., see
> l2sram_update_mappings() draft implementation in
> https://lists.gnu.org/archive/html/qemu-devel/2018-02/msg04261.html"?
>
>> Regards,
>> BALATON Zoltan
>
>
>
diff mbox series

Patch

diff --git a/hw/ppc/ppc440_uc.c b/hw/ppc/ppc440_uc.c
index 4181c843a8..643a79e330 100644
--- a/hw/ppc/ppc440_uc.c
+++ b/hw/ppc/ppc440_uc.c
@@ -73,46 +73,6 @@  typedef struct ppc4xx_l2sram_t {
     uint32_t isram0[11];
 } ppc4xx_l2sram_t;
 
-#ifdef MAP_L2SRAM
-static void l2sram_update_mappings(ppc4xx_l2sram_t *l2sram,
-                                   uint32_t isarc, uint32_t isacntl,
-                                   uint32_t dsarc, uint32_t dsacntl)
-{
-    if (l2sram->isarc != isarc ||
-        (l2sram->isacntl & 0x80000000) != (isacntl & 0x80000000)) {
-        if (l2sram->isacntl & 0x80000000) {
-            /* Unmap previously assigned memory region */
-            memory_region_del_subregion(get_system_memory(),
-                                        &l2sram->isarc_ram);
-        }
-        if (isacntl & 0x80000000) {
-            /* Map new instruction memory region */
-            memory_region_add_subregion(get_system_memory(), isarc,
-                                        &l2sram->isarc_ram);
-        }
-    }
-    if (l2sram->dsarc != dsarc ||
-        (l2sram->dsacntl & 0x80000000) != (dsacntl & 0x80000000)) {
-        if (l2sram->dsacntl & 0x80000000) {
-            /* Beware not to unmap the region we just mapped */
-            if (!(isacntl & 0x80000000) || l2sram->dsarc != isarc) {
-                /* Unmap previously assigned memory region */
-                memory_region_del_subregion(get_system_memory(),
-                                            &l2sram->dsarc_ram);
-            }
-        }
-        if (dsacntl & 0x80000000) {
-            /* Beware not to remap the region we just mapped */
-            if (!(isacntl & 0x80000000) || dsarc != isarc) {
-                /* Map new data memory region */
-                memory_region_add_subregion(get_system_memory(), dsarc,
-                                            &l2sram->dsarc_ram);
-            }
-        }
-    }
-}
-#endif
-
 static uint32_t dcr_read_l2sram(void *opaque, int dcrn)
 {
     ppc4xx_l2sram_t *l2sram = opaque;