2.6.23-rc6-git1 -- termios *_1 compile failures on powerpc

Previous thread: [PATCH 5/5][NFS] Use macro instead of explicit check for mandatory locks by Pavel Emelyanov on Wednesday, September 12, 2007 - 7:28 am. (1 message)

Next thread: [patch] sunrpc: make closing of old temporary sockets work (was: problems with lockd in 2.6.22.6) by Wolfgang Walter on Wednesday, September 12, 2007 - 8:07 am. (4 messages)
To: Alan Cox <alan@...>, David Miller <davem@...>
Cc: Linus Torvalds <torvalds@...>, <linux-kernel@...>, Mel Gorman <mel@...>
Date: Wednesday, September 12, 2007 - 7:58 am

The following commit just hit mainline and all my powerpc test boxes are
failing during compilation:

commit f629307c857c030d5a3dd777fee37c8bb395e171
tty: termios locking functions break with new termios type

Failing as follows:

drivers/char/tty_ioctl.c: In function `n_tty_ioctl':
drivers/char/tty_ioctl.c:799: error: implicit declaration of function
`kernel_termios_to_user_termios_1'
drivers/char/tty_ioctl.c:806: error: implicit declaration of function
`user_termios_to_kernel_termios_1'
make[2]: *** [drivers/char/tty_ioctl.o] Error 1

It seems that a lot of architectures already have these varients, but not
powerpc:

include/asm-arm/termios.h
include/asm-blackfin/termios.h
include/asm-cris/termios.h
include/asm-h8300/termios.h
include/asm-i386/termios.h
include/asm-ia64/termios.h
include/asm-m32r/termios.h
include/asm-m68k/termios.h
include/asm-mips/termios.h
include/asm-v850/termios.h
include/asm-x86_64/termios.h
include/asm-xtensa/termios.h

Looking closer there seems to be a generic implementation of the non _1
variants, which seem out of step with the architecture specific
variants? Seems bad.

From i386 we have the following (wrapped for clarity), and they seem
typical:

#define user_termios_to_kernel_termios(k, u)
copy_from_user(k, u, sizeof(struct termios2))
#define kernel_termios_to_user_termios(u, k)
copy_to_user(u, k, sizeof(struct termios2))
#define user_termios_to_kernel_termios_1(k, u)
copy_from_user(k, u, sizeof(struct termios))
#define kernel_termios_to_user_termios_1(u, k)
copy_to_user(u, k, sizeof(struct termios))

Generic versions from asm-generic/termios.h seem to be:

#define user_termios_to_kernel_termios(k, u)
copy_from_user(k, u, sizeof(struct termios))
#define kernel_termios_to_user_termios(u, k)
copy_to_user(u, k, sizeof(struct termios))

So I'd say we've missed a trick on this in the conversion. Alan seems
to be the main source of these changes. From the various commits which
u...

To: Andy Whitcroft <apw@...>
Cc: Alan Cox <alan@...>, David Miller <davem@...>, Linus Torvalds <torvalds@...>, <linux-kernel@...>, Mel Gorman <mel@...>
Date: Wednesday, September 12, 2007 - 10:33 am

I think this is already being discussed on the linuxppc-dev list.

josh
-

To: Josh Boyer <jwboyer@...>
Cc: Andy Whitcroft <apw@...>, Alan Cox <alan@...>, David Miller <davem@...>, Linus Torvalds <torvalds@...>, <linux-kernel@...>, Mel Gorman <mel@...>
Date: Saturday, September 15, 2007 - 8:54 am

The same thing hits sparc64:

CC drivers/char/tty_ioctl.o
drivers/char/tty_ioctl.c: In function 'n_tty_ioctl':
drivers/char/tty_ioctl.c:799: error: implicit declaration of function 'kernel_termios_to_user_termios_1'
drivers/char/tty_ioctl.c:806: error: implicit declaration of function 'user_termios_to_kernel_termios_1'
make[2]: *** [drivers/char/tty_ioctl.o] Error 1
make[1]: *** [drivers/char] Error 2
make: *** [drivers] Error 2

Cheers,
-- Guido

-

Previous thread: [PATCH 5/5][NFS] Use macro instead of explicit check for mandatory locks by Pavel Emelyanov on Wednesday, September 12, 2007 - 7:28 am. (1 message)

Next thread: [patch] sunrpc: make closing of old temporary sockets work (was: problems with lockd in 2.6.22.6) by Wolfgang Walter on Wednesday, September 12, 2007 - 8:07 am. (4 messages)