Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

tty: tty_buffer: switch insert functions to size_t

All the functions accept size_t as a size argument. They finally return
the same size (or less). It is quite unexpected that they return a
signed value and can confuse users to check for negative values.

Instead, return the same size_t as accepted to make clear we return
values >= 0, where zero in fact means failure.

Signed-off-by: "Jiri Slaby (SUSE)" <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20230816105530.3335-6-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Jiri Slaby (SUSE) and committed by
Greg Kroah-Hartman
6144922e 4a8d99a4

+18 -18
+6 -6
drivers/tty/tty_buffer.c
··· 303 303 } 304 304 EXPORT_SYMBOL_GPL(tty_buffer_request_room); 305 305 306 - int __tty_insert_flip_string_flags(struct tty_port *port, const u8 *chars, 307 - const u8 *flags, bool mutable_flags, 308 - size_t size) 306 + size_t __tty_insert_flip_string_flags(struct tty_port *port, const u8 *chars, 307 + const u8 *flags, bool mutable_flags, 308 + size_t size) 309 309 { 310 310 bool need_flags = mutable_flags || flags[0] != TTY_NORMAL; 311 - int copied = 0; 311 + size_t copied = 0; 312 312 313 313 do { 314 - int goal = min_t(size_t, size - copied, TTY_BUFFER_PAGE); 315 - int space = __tty_buffer_request_room(port, goal, need_flags); 314 + size_t goal = min_t(size_t, size - copied, TTY_BUFFER_PAGE); 315 + size_t space = __tty_buffer_request_room(port, goal, need_flags); 316 316 struct tty_buffer *tb = port->buf.tail; 317 317 318 318 if (unlikely(space == 0))
+12 -12
include/linux/tty_flip.h
··· 10 10 int tty_buffer_set_limit(struct tty_port *port, int limit); 11 11 unsigned int tty_buffer_space_avail(struct tty_port *port); 12 12 int tty_buffer_request_room(struct tty_port *port, size_t size); 13 - int __tty_insert_flip_string_flags(struct tty_port *port, const u8 *chars, 14 - const u8 *flags, bool mutable_flags, 15 - size_t size); 13 + size_t __tty_insert_flip_string_flags(struct tty_port *port, const u8 *chars, 14 + const u8 *flags, bool mutable_flags, 15 + size_t size); 16 16 int tty_prepare_flip_string(struct tty_port *port, u8 **chars, size_t size); 17 17 void tty_flip_buffer_push(struct tty_port *port); 18 18 int __tty_insert_flip_char(struct tty_port *port, u8 ch, u8 flag); ··· 29 29 * 30 30 * Returns: the number added. 31 31 */ 32 - static inline int tty_insert_flip_string_fixed_flag(struct tty_port *port, 33 - const u8 *chars, u8 flag, 34 - size_t size) 32 + static inline size_t tty_insert_flip_string_fixed_flag(struct tty_port *port, 33 + const u8 *chars, u8 flag, 34 + size_t size) 35 35 { 36 36 return __tty_insert_flip_string_flags(port, chars, &flag, false, size); 37 37 } ··· 48 48 * 49 49 * Returns: the number added. 50 50 */ 51 - static inline int tty_insert_flip_string_flags(struct tty_port *port, 52 - const u8 *chars, const u8 *flags, 53 - size_t size) 51 + static inline size_t tty_insert_flip_string_flags(struct tty_port *port, 52 + const u8 *chars, 53 + const u8 *flags, size_t size) 54 54 { 55 55 return __tty_insert_flip_string_flags(port, chars, flags, true, size); 56 56 } 57 57 58 58 59 - static inline int tty_insert_flip_char(struct tty_port *port, u8 ch, u8 flag) 59 + static inline size_t tty_insert_flip_char(struct tty_port *port, u8 ch, u8 flag) 60 60 { 61 61 struct tty_buffer *tb = port->buf.tail; 62 62 int change; ··· 71 71 return __tty_insert_flip_char(port, ch, flag); 72 72 } 73 73 74 - static inline int tty_insert_flip_string(struct tty_port *port, 75 - const u8 *chars, size_t size) 74 + static inline size_t tty_insert_flip_string(struct tty_port *port, 75 + const u8 *chars, size_t size) 76 76 { 77 77 return tty_insert_flip_string_fixed_flag(port, chars, TTY_NORMAL, size); 78 78 }