Re: [PATCH 1/5] MIPS: Bail on unsupported module relocs

Paul Burton
2016-02-03T16:15:24Z

On Wed, Feb 03, 2016 at 12:24:38PM +0000, Maciej W. Rozycki wrote:
> On Wed, 3 Feb 2016, Paul Burton wrote:
>
> > --- a/arch/mips/kernel/module-rela.c
> > +++ b/arch/mips/kernel/module-rela.c
> > @@ -134,9 +135,21 @@ int apply_relocate_add(Elf_Shdr *sechdrs, const char *strtab,
> > return -ENOENT;
> > }
> >
> > - v = sym->st_value + rel[i].r_addend;
> > + type = ELF_MIPS_R_TYPE(rel[i]);
> > +
> > + if (type < ARRAY_SIZE(reloc_handlers_rela))
> > + handler = reloc_handlers_rela[type];
> > + else
> > + handler = NULL;
> >
> > - res = reloc_handlers_rela[ELF_MIPS_R_TYPE(rel[i])](me, location, v);
> > + if (!handler) {
> > + pr_warn("%s: Unknown relocation type %u\n",
> > + me->name, type);
> > + return -EINVAL;
>
> Hmm, this looks like a fatal error condition to me, the module won't
> load. Why `pr_warn' rather than `pr_err' then? Likewise in the other
> file.
>
> Maciej

Hi Maciej,

To me fatality implies death, and nothing dies here. The module isn't
loaded but that's done gracefully & is not likely due to an error in the
kernel - it's far more likely that the module isn't valid. So to me,
warning seems appropriate rather than implying an error in the kernel.

Having said that I think it's a non-issue & don't really care either
way, so if Ralf wants it to be pr_err fine.

Thanks,
Paul