Message ID | 675e7bd9-955b-3ff3-1101-a973b58b5b75@infradead.org |
---|---|
State | Changes Requested |
Delegated to: | David Miller |
Headers | show |
Series | tty: n_hdlc: fix build on SPARC | expand |
On Mon, Sep 30, 2019 at 07:15:12PM -0700, Randy Dunlap wrote: > From: Randy Dunlap <rdunlap@infradead.org> > > Fix tty driver build on SPARC by not using __exitdata. > It appears that SPARC does not support section .exit.data. > > Fixes these build errors: > > `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > > Reported-by: kbuild test robot <lkp@intel.com> > Fixes: 063246641d4a ("format-security: move static strings to const") > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Wow. That commit is from 2.5 years ago. Is the SPARC port still alive? > Cc: Kees Cook <keescook@chromium.org> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> > Cc: "David S. Miller" <davem@davemloft.net> > Cc: Andrew Morton <akpm@linux-foundation.org> > --- > drivers/tty/n_hdlc.c | 5 +++++ > 1 file changed, 5 insertions(+) > > --- mmotm-2019-0925-1810.orig/drivers/tty/n_hdlc.c > +++ mmotm-2019-0925-1810/drivers/tty/n_hdlc.c > @@ -968,6 +968,11 @@ static int __init n_hdlc_init(void) > > } /* end of init_module() */ > > +#ifdef CONFIG_SPARC > +#undef __exitdata > +#define __exitdata > +#endif Shouldn't this be somewhere else? Any other driver wanting to use __exitdata would need a similar patch. This feels like it should be handled where __exitdata is normally defined? -Kees > + > static const char hdlc_unregister_ok[] __exitdata = > KERN_INFO "N_HDLC: line discipline unregistered\n"; > static const char hdlc_unregister_fail[] __exitdata = > >
On 10/30/19 7:34 PM, Kees Cook wrote: > On Mon, Sep 30, 2019 at 07:15:12PM -0700, Randy Dunlap wrote: >> From: Randy Dunlap <rdunlap@infradead.org> >> >> Fix tty driver build on SPARC by not using __exitdata. >> It appears that SPARC does not support section .exit.data. >> >> Fixes these build errors: >> >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o >> >> Reported-by: kbuild test robot <lkp@intel.com> >> Fixes: 063246641d4a ("format-security: move static strings to const") >> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > > Wow. That commit is from 2.5 years ago. Is the SPARC port still alive? Yes, it is. No idea why we didn't run into this. I assume it affects certain configurations only. On Debian, we are always compiling and running the latest kernel versions on sparc64. Adrian
On Wed, Oct 30, 2019 at 08:29:40PM +0100, John Paul Adrian Glaubitz wrote: > On 10/30/19 7:34 PM, Kees Cook wrote: > > On Mon, Sep 30, 2019 at 07:15:12PM -0700, Randy Dunlap wrote: > >> From: Randy Dunlap <rdunlap@infradead.org> > >> > >> Fix tty driver build on SPARC by not using __exitdata. > >> It appears that SPARC does not support section .exit.data. > >> > >> Fixes these build errors: > >> > >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > >> > >> Reported-by: kbuild test robot <lkp@intel.com> > >> Fixes: 063246641d4a ("format-security: move static strings to const") > >> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > > > > Wow. That commit is from 2.5 years ago. Is the SPARC port still alive? > Yes, it is. No idea why we didn't run into this. I assume it affects certain > configurations only. On Debian, we are always compiling and running the > latest kernel versions on sparc64. Yeah, that's what I thought. I also didn't hit it 2.5 years ago when I did multi-architecture build validation of these changes. :P Randy you've found a nice corner case! :)
From: Randy Dunlap <rdunlap@infradead.org> Date: Mon, 30 Sep 2019 19:15:12 -0700 > From: Randy Dunlap <rdunlap@infradead.org> > > Fix tty driver build on SPARC by not using __exitdata. > It appears that SPARC does not support section .exit.data. > > Fixes these build errors: > > `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o > > Reported-by: kbuild test robot <lkp@intel.com> > Fixes: 063246641d4a ("format-security: move static strings to const") > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> I'll add an .exit.data to arch/sparc/kernel/vmlinux.lds.S to fix this.
On 1/12/20 12:05 AM, David Miller wrote: > From: Randy Dunlap <rdunlap@infradead.org> > Date: Mon, 30 Sep 2019 19:15:12 -0700 > >> From: Randy Dunlap <rdunlap@infradead.org> >> >> Fix tty driver build on SPARC by not using __exitdata. >> It appears that SPARC does not support section .exit.data. >> >> Fixes these build errors: >> >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o >> `.exit.data' referenced in section `.exit.text' of drivers/tty/n_hdlc.o: defined in discarded section `.exit.data' of drivers/tty/n_hdlc.o >> >> Reported-by: kbuild test robot <lkp@intel.com> >> Fixes: 063246641d4a ("format-security: move static strings to const") >> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > > I'll add an .exit.data to arch/sparc/kernel/vmlinux.lds.S to fix this. > Thanks.
--- mmotm-2019-0925-1810.orig/drivers/tty/n_hdlc.c +++ mmotm-2019-0925-1810/drivers/tty/n_hdlc.c @@ -968,6 +968,11 @@ static int __init n_hdlc_init(void) } /* end of init_module() */ +#ifdef CONFIG_SPARC +#undef __exitdata +#define __exitdata +#endif + static const char hdlc_unregister_ok[] __exitdata = KERN_INFO "N_HDLC: line discipline unregistered\n"; static const char hdlc_unregister_fail[] __exitdata =