Re: Define termios_1 functions for powerpc, s390, avr32 and frv

Andrew Morton
2007-09-14T22:14:18Z

On Fri, 14 Sep 2007 11:33:24 -0700 (PDT)
David Miller <davem@davemloft.net> wrote:

> From: Andrew Morton <akpm@linux-foundation.org>
> Date: Thu, 13 Sep 2007 03:55:06 -0700
>
> > I think we need to go with Tony's patch. sparc32 and sparc64 are
> > presently broken too, and the patch which converts sparc to use the
> > new interfaces introduces a few build errors.
>
> The problem with the asm-generic/termios.h thing is it only works
> if your copying functions are just a copy_{to,from}_user() and you
> can define that __ARCH_* macro.
>
> In retrospect what that header should do is, outside of the
> ARCH_* block, define the foo_1 interfaces plainly to foo.
>
> Alternatively, here is a patch that gets sparc compiling and
> working again in the current tree.
>
> This whole termios thing hasn't been handled very well, and it's maybe
> not what we should be doing so late in the -rc cycle. And yes,
> this is coming from the guy who added the TCP oops'er two weeks ago
> :-P

tell me about it.

> [SPARC]: Fix build due to termios changes.
>
> Signed-off-by: David S. Miller <davem@davemloft.net>
>
> diff --git a/include/asm-sparc/termios.h b/include/asm-sparc/termios.h
> index d767f20..25e9cbb 100644
> --- a/include/asm-sparc/termios.h
> +++ b/include/asm-sparc/termios.h
> @@ -142,6 +142,11 @@ struct winsize {
> 0; \
> })
>
> +#define user_termios_to_kernel_termios_1(k, u) \
> + user_termios_to_kernel_termios(k, u)
> +#define kernel_termios_to_user_termios_1(u, k) \
> + kernel_termios_to_user_termios(u, k)
> +
> #endif /* __KERNEL__ */
>
> #endif /* _SPARC_TERMIOS_H */
> diff --git a/include/asm-sparc64/termios.h b/include/asm-sparc64/termios.h
> index f05d390..6fc71e6 100644
> --- a/include/asm-sparc64/termios.h
> +++ b/include/asm-sparc64/termios.h
> @@ -145,6 +145,11 @@ struct winsize {
> err; \
> })
>
> +#define user_termios_to_kernel_termios_1(k, u) \
> + user_termios_to_kernel_termios(k, u)
> +#define kernel_termios_to_user_termios_1(u, k) \
> + kernel_termios_to_user_termios(u, k)
> +
> #endif /* __KERNEL__ */
>
> #endif /* _SPARC64_TERMIOS_H */

That fixes sparc, but I think other architectures are still broken. And if
we use Tony's ifdef patch to fix the other architectures, that makes the
above sparc-fix patch unneeded.

argh.