diff options
author | Javier Martinez Canillas <javierm@redhat.com> | 2025-06-27 15:53:37 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2025-07-08 18:15:20 -0600 |
commit | 6df1b1cd4e38575019c8b4f605c07a784c63f40e (patch) | |
tree | 6327f30902600bd16cfc79bffe1f4d4f6afd7219 | |
parent | 61a3e1b043068abc26fa2c72ac4d420c61dc1cd5 (diff) |
tools: termios_linux.h: Fix build error on ppc64
Commit 93b55636b09f ("tools: kwboot: Allow any baudrate on Linux") added a
tcgetattr() function to be used, instead of the libc's termios functions.
This was done to allow using the raw TCGETS2/TCSETS2 ioctls that allow to
support arbitrary baud rates.
This breaks the build for PowerPC, because that architecture does not have
a struct termios2 defined because the termios and ktermios are the same.
On PowerPC, the termios ioctl() emulates the TCGETS2/TCSETS*2 ioctls with
tcgetattr/tcsetattr using just the struct termios (that's as mentioned the
same than what is defined as struct termios2 in other architectures).
So there is no need to use the TCGETS2/TCSETS2 ioctls on that architecture
and just TCGETS/TCSETS ioctls with termios as defined by PowerPC is enough.
Fixes: 93b55636b09f ("tools: kwboot: Allow any baudrate on Linux")
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
Reviewed-by: Tom Rini <trini@konsulko.com>
-rw-r--r-- | tools/termios_linux.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/tools/termios_linux.h b/tools/termios_linux.h index 0806a91180a..0e5a5c475b5 100644 --- a/tools/termios_linux.h +++ b/tools/termios_linux.h @@ -32,13 +32,13 @@ #include <asm/ioctls.h> #include <asm/termbits.h> -#if defined(BOTHER) && defined(TCGETS2) +#if defined(BOTHER) && defined(TCGETS2) && !defined(__powerpc64__) #define termios termios2 #endif static inline int tcgetattr(int fd, struct termios *t) { -#if defined(BOTHER) && defined(TCGETS2) +#if defined(BOTHER) && defined(TCGETS2) && !defined(__powerpc64__) return ioctl(fd, TCGETS2, t); #else return ioctl(fd, TCGETS, t); @@ -50,7 +50,7 @@ static inline int tcsetattr(int fd, int a, const struct termios *t) int cmd; switch (a) { -#if defined(BOTHER) && defined(TCGETS2) +#if defined(BOTHER) && defined(TCGETS2) && !defined(__powerpc64__) case TCSANOW: cmd = TCSETS2; break; |