diff mbox series

tty: n_hdlc: fix build on SPARC

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

Commit Message

Randy Dunlap Oct. 1, 2019, 2:15 a.m. UTC
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>
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(+)

Comments

Kees Cook Oct. 30, 2019, 6:34 p.m. UTC | #1
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 =
> 
>
John Paul Adrian Glaubitz Oct. 30, 2019, 7:29 p.m. UTC | #2
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
Kees Cook Oct. 30, 2019, 7:49 p.m. UTC | #3
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! :)
David Miller Jan. 12, 2020, 8:05 a.m. UTC | #4
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.
Randy Dunlap Jan. 12, 2020, 4:11 p.m. UTC | #5
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.
diff mbox series

Patch

--- 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 =