login
Header Space

 
 

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)
speck-geostationary