On Wed, 12 Mar 2025 12:04:49 -0500 <[email protected]> wrote:
>
> > -----Original Message-----
> > From: Brian Cain <[email protected]>
> >
> > +void hex_mmu_realize(CPUHexagonState *env) {
> > +    CPUState *cs = env_cpu(env);
> > +    if (cs->cpu_index == 0) {
> > +        env->hex_tlb = g_malloc0(sizeof(CPUHexagonTLBContext));
> > +    } else {
> > +        CPUState *cpu0_s = NULL;
> > +        CPUHexagonState *env0 = NULL;
> > +        CPU_FOREACH(cpu0_s) {
> > +            assert(cpu0_s->cpu_index == 0);
> > +            env0 = &(HEXAGON_CPU(cpu0_s)->env);
> > +            break;
> > +        }
> 
> Seems fragile to assume cpu_index == 0 will be first in CPU_FOREACH.  This 
> would be better
>     CPU_FOREACH(cpu0_s) {
>         if (cpu0_s->cpu_index == 0) {
>             env0 = &(HEXAGON_CPU(cpu0_s)->env);
>             break;
>         }
>     }
>     g_assert(env0);  /* Make sure we found it */

Or even:

    cpu0_s = qemu_get_cpu(0);
    g_assert(cpu0_s);
    env0 = &(HEXAGON_CPU(cpu0_s)->env);

Reply via email to