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

From: Andrew Morton <[email-masked]>
Date: Fri, 14 Sep 2007 15:12:53 -0700

On Fri, 14 Sep 2007 11:33:24 -0700 (PDT)
David Miller <[email-masked]> wrote:

> From: Andrew Morton <[email-masked]>
> 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 <[email-masked]>
> 
> 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.