Messages in this thread | | | From | Michael Ellerman <> | Subject | Re: [PATCH] powerpc/mpic: Cleanup irq vector accounting | Date | Wed, 04 Jul 2018 23:27:15 +1000 |
| |
Bharat Bhushan <Bharat.Bhushan@nxp.com> writes:
> Available vector space accounts ipis and timer interrupts > while spurious vector was not accounted.
OK. What is the symptom of that? Nothing? Total system crash?
Looks like this can be tagged:
Fixes: 0a4081641d72 ("powerpc/mpic: FSL MPIC error interrupt support.")
Which added the code that uses "12".
> Also later > mpic_setup_error_int() escape one more vector, seemingly it > assumes one spurious vector.
Ah right, I get it now.
So there is no bug. It's just a disagreement about whether the "intvec" argument to mpic_setup_error_int() indicates the first number that's free to use or the last number that has been allocated.
Right?
cheers
> Signed-off-by: Bharat Bhushan <Bharat.Bhushan@nxp.com> > --- > arch/powerpc/sysdev/fsl_mpic_err.c | 2 +- > arch/powerpc/sysdev/mpic.c | 6 +++--- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/arch/powerpc/sysdev/fsl_mpic_err.c b/arch/powerpc/sysdev/fsl_mpic_err.c > index 488ec45..2a98837 100644 > --- a/arch/powerpc/sysdev/fsl_mpic_err.c > +++ b/arch/powerpc/sysdev/fsl_mpic_err.c > @@ -76,7 +76,7 @@ int mpic_setup_error_int(struct mpic *mpic, int intvec) > mpic->flags |= MPIC_FSL_HAS_EIMR; > /* allocate interrupt vectors for error interrupts */ > for (i = MPIC_MAX_ERR - 1; i >= 0; i--) > - mpic->err_int_vecs[i] = --intvec; > + mpic->err_int_vecs[i] = intvec--; > > return 0; > } > diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c > index 1d4e0ef6..e098d1e 100644 > --- a/arch/powerpc/sysdev/mpic.c > +++ b/arch/powerpc/sysdev/mpic.c > @@ -1380,12 +1380,12 @@ struct mpic * __init mpic_alloc(struct device_node *node, > * global vector number space, as in case of ipis > * and timer interrupts. > * > - * Available vector space = intvec_top - 12, where 12 > + * Available vector space = intvec_top - 13, where 13 > * is the number of vectors which have been consumed by > - * ipis and timer interrupts. > + * ipis, timer interrupts and spurious. > */ > if (fsl_version >= 0x401) { > - ret = mpic_setup_error_int(mpic, intvec_top - 12); > + ret = mpic_setup_error_int(mpic, intvec_top - 13); > if (ret) > return NULL; > } > -- > 1.9.3
| |