tty: make tty_operations::write()'s count size_t
authorJiri Slaby (SUSE) <jirislaby@kernel.org>
Thu, 10 Aug 2023 09:15:03 +0000 (11:15 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 Aug 2023 19:12:46 +0000 (21:12 +0200)
Unify with the rest of the code. Use size_t for counts and ssize_t for
retval.

Signed-off-by: "Jiri Slaby (SUSE)" <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20230810091510.13006-30-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
43 files changed:
arch/alpha/kernel/srmcons.c
arch/m68k/emu/nfcon.c
arch/um/drivers/line.c
arch/um/drivers/line.h
arch/xtensa/platforms/iss/console.c
drivers/char/ttyprintk.c
drivers/ipack/devices/ipoctal.c
drivers/isdn/capi/capi.c
drivers/misc/bcm-vk/bcm_vk_tty.c
drivers/mmc/core/sdio_uart.c
drivers/net/usb/hso.c
drivers/s390/char/con3215.c
drivers/s390/char/con3270.c
drivers/s390/char/sclp_tty.c
drivers/s390/char/sclp_vt220.c
drivers/staging/gdm724x/gdm_tty.c
drivers/staging/greybus/uart.c
drivers/tty/amiserial.c
drivers/tty/ehv_bytechan.c
drivers/tty/goldfish.c
drivers/tty/hvc/hvc_console.c
drivers/tty/hvc/hvcs.c
drivers/tty/hvc/hvsi.c
drivers/tty/ipwireless/tty.c
drivers/tty/mips_ejtag_fdc.c
drivers/tty/moxa.c
drivers/tty/mxser.c
drivers/tty/n_gsm.c
drivers/tty/nozomi.c
drivers/tty/pty.c
drivers/tty/rpmsg_tty.c
drivers/tty/serial/kgdb_nmi.c
drivers/tty/serial/serial_core.c
drivers/tty/synclink_gt.c
drivers/tty/ttynull.c
drivers/tty/vcc.c
drivers/tty/vt/vt.c
drivers/usb/class/cdc-acm.c
drivers/usb/gadget/function/u_serial.c
drivers/usb/host/xhci-dbgtty.c
drivers/usb/serial/usb-serial.c
include/linux/tty_driver.h
net/bluetooth/rfcomm/tty.c

index dea39008d93ee341aeb144c7ee6e474164485671..d6139dbae4ac9ff668da6c95d02abba01e87282b 100644 (file)
@@ -129,8 +129,8 @@ srmcons_do_write(struct tty_port *port, const char *buf, int count)
        return count;
 }
 
-static int
-srmcons_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t
+srmcons_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        unsigned long flags;
 
index 87398f834e364a70a866978dfdcea4a5853a70ef..3a74d493eb3e6e34af2db27f4f2474c992e6a6b0 100644 (file)
@@ -70,7 +70,8 @@ static void nfcon_tty_close(struct tty_struct *tty, struct file *filp)
 {
 }
 
-static int nfcon_tty_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t nfcon_tty_write(struct tty_struct *tty, const u8 *buf,
+                              size_t count)
 {
        nfputs(buf, count);
        return count;
index e5393b4ba9f87d44da00b8e1a560b4d63ecb4c2b..b98545f3edb5033260dad9590d812f3ddc522360 100644 (file)
@@ -184,7 +184,7 @@ void line_flush_chars(struct tty_struct *tty)
        line_flush_buffer(tty);
 }
 
-int line_write(struct tty_struct *tty, const u8 *buf, int len)
+ssize_t line_write(struct tty_struct *tty, const u8 *buf, size_t len)
 {
        struct line *line = tty->driver_data;
        unsigned long flags;
index 8354024b6b354e0856880ea516e2be065e584afa..e84fb9b4165e86f498031b004184772dd33471f9 100644 (file)
@@ -64,7 +64,7 @@ extern void line_cleanup(struct tty_struct *tty);
 extern void line_hangup(struct tty_struct *tty);
 extern int line_setup(char **conf, unsigned nlines, char **def,
                      char *init, char *name);
-extern int line_write(struct tty_struct *tty, const u8 *buf, int len);
+extern ssize_t line_write(struct tty_struct *tty, const u8 *buf, size_t len);
 extern unsigned int line_chars_in_buffer(struct tty_struct *tty);
 extern void line_flush_buffer(struct tty_struct *tty);
 extern void line_flush_chars(struct tty_struct *tty);
index 182ec57e2d5c7de9e4232100de631f43c62e4695..7d1f8b398a464d8909a3cb3af8920d494c7cf044 100644 (file)
@@ -52,7 +52,7 @@ static void rs_close(struct tty_struct *tty, struct file * filp)
 }
 
 
-static int rs_write(struct tty_struct * tty, const u8 *buf, int count)
+static ssize_t rs_write(struct tty_struct * tty, const u8 *buf, size_t count)
 {
        /* see drivers/char/serialX.c to reference original version */
 
index 4f3dd93f1fd82ea47dd64bfef6d74fa44a269e40..5af804c17a75349910cfe9b24d7170aa5dd9f129 100644 (file)
@@ -103,7 +103,7 @@ static void tpk_close(struct tty_struct *tty, struct file *filp)
 /*
  * TTY operations write function.
  */
-static int tpk_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t tpk_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        struct ttyprintk_port *tpkp = tty->driver_data;
        unsigned long flags;
index c3cf086e7e369f0a65bd7889bedfb7158236333f..da308be6c4877e2dbbae38948b2716d54fe44850 100644 (file)
@@ -458,7 +458,8 @@ static inline int ipoctal_copy_write_buffer(struct ipoctal_channel *channel,
        return i;
 }
 
-static int ipoctal_write_tty(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t ipoctal_write_tty(struct tty_struct *tty, const u8 *buf,
+                                size_t count)
 {
        struct ipoctal_channel *channel = tty->driver_data;
        unsigned int char_copied;
index 2f38e1cfe97a9448d4a7a972ef44bdb40103829e..2f37895154455e9ff806a294f2336fc83bdd43a5 100644 (file)
@@ -1077,12 +1077,13 @@ static void capinc_tty_close(struct tty_struct *tty, struct file *filp)
        tty_port_close(&mp->port, tty, filp);
 }
 
-static int capinc_tty_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t capinc_tty_write(struct tty_struct *tty, const u8 *buf,
+                               size_t count)
 {
        struct capiminor *mp = tty->driver_data;
        struct sk_buff *skb;
 
-       pr_debug("capinc_tty_write(count=%d)\n", count);
+       pr_debug("capinc_tty_write(count=%zu)\n", count);
 
        spin_lock_bh(&mp->outlock);
        skb = mp->outskb;
index 44851b607cce591ffd821b780eddc3b375c0f2fa..2bce835ca43efcf8a55a7577f7847ecc34ddc9e2 100644 (file)
@@ -186,7 +186,8 @@ static void bcm_vk_tty_doorbell(struct bcm_vk *vk, u32 db_val)
                  VK_BAR0_REGSEG_DB_BASE + VK_BAR0_REGSEG_TTY_DB_OFFSET);
 }
 
-static int bcm_vk_tty_write(struct tty_struct *tty, const u8 *buffer, int count)
+static ssize_t bcm_vk_tty_write(struct tty_struct *tty, const u8 *buffer,
+                               size_t count)
 {
        int index;
        struct bcm_vk *vk;
index 90d2fe00c0b9195cf8203dd601fb6face01cb378..ef38dcd3a8872357422e330c7ee3f225db8d85f7 100644 (file)
@@ -760,7 +760,8 @@ static void sdio_uart_hangup(struct tty_struct *tty)
        tty_port_hangup(&port->port);
 }
 
-static int sdio_uart_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t sdio_uart_write(struct tty_struct *tty, const u8 *buf,
+                             size_t count)
 {
        struct sdio_uart_port *port = tty->driver_data;
        int ret;
index 014a9d29bab55e115531c4df80a1235ae753287a..3f424da87bf47b1604a1a9dbd68a1c6b2f6aeb25 100644 (file)
@@ -1322,7 +1322,8 @@ static void hso_serial_close(struct tty_struct *tty, struct file *filp)
 }
 
 /* close the requested serial port */
-static int hso_serial_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t hso_serial_write(struct tty_struct *tty, const u8 *buf,
+                               size_t count)
 {
        struct hso_serial *serial = tty->driver_data;
        int space, tx_bytes;
index 8bbce6a4d7f5e8e13ca74683df1e8672630cb0cb..99361618c31f314c5edba1999953788dd3a69250 100644 (file)
@@ -1021,7 +1021,8 @@ static unsigned int tty3215_write_room(struct tty_struct *tty)
 /*
  * String write routine for 3215 ttys
  */
-static int tty3215_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t tty3215_write(struct tty_struct *tty, const u8 *buf,
+                            size_t count)
 {
        handle_write(tty->driver_data, buf, count);
        return count;
index 6374555a0937223dff5d1957a5b7ab3f4cf7252e..363315fa1666d69410d63c75c1a1132b47d5eaa9 100644 (file)
@@ -1803,7 +1803,8 @@ static void tty3270_do_write(struct tty3270 *tp, struct tty_struct *tty,
 /*
  * String write routine for 3270 ttys
  */
-static int tty3270_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t tty3270_write(struct tty_struct *tty, const u8 *buf,
+                            size_t count)
 {
        struct tty3270 *tp;
 
index 831a8c7cacc2c6fcbd7095a22197584a07d018d7..892c18d2f87e9018c1b58738d7c6d687615069f3 100644 (file)
@@ -229,8 +229,8 @@ out:
  * tty device. The characters may come from user space or kernel space. This
  * routine will return the number of characters actually accepted for writing.
  */
-static int
-sclp_tty_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t
+sclp_tty_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        if (sclp_tty_chars_count > 0) {
                sclp_tty_write_string(sclp_tty_chars, sclp_tty_chars_count, 0);
index e148350c1e2c0edef9862d237694b2f31d4cc038..218ae604f737ff9e20764ebce857ce427e4a7c44 100644 (file)
@@ -462,8 +462,8 @@ out:
  * user space or kernel space.  This routine will return the
  * number of characters actually accepted for writing.
  */
-static int
-sclp_vt220_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t
+sclp_vt220_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        return __sclp_vt220_write(buf, count, 1, 0, 1);
 }
index ae9978b73d9b87c161acc076d161dc84d7d09243..b31f2afb02860f1861bc236e1d7916b9d3384788 100644 (file)
@@ -149,7 +149,7 @@ static void gdm_tty_send_complete(void *arg)
        tty_port_tty_wakeup(&gdm->port);
 }
 
-static int gdm_tty_write(struct tty_struct *tty, const u8 *buf, int len)
+static ssize_t gdm_tty_write(struct tty_struct *tty, const u8 *buf, size_t len)
 {
        struct gdm *gdm = tty->driver_data;
        int remain = len;
index 97c7ddd0f53ebc920b43d866d22a3dacabd64b3a..999ce613dca811da540ea29c77096aeec3a9dc47 100644 (file)
@@ -427,7 +427,7 @@ static void gb_tty_hangup(struct tty_struct *tty)
        tty_port_hangup(&gb_tty->port);
 }
 
-static int gb_tty_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t gb_tty_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        struct gb_tty *gb_tty = tty->driver_data;
 
index 91cf294ec8c1f7485dab73060fea9e762bef78ad..785558c65ae8052f9e76d8b64d2486da381f5ebf 100644 (file)
@@ -741,7 +741,7 @@ static void rs_flush_chars(struct tty_struct *tty)
        local_irq_restore(flags);
 }
 
-static int rs_write(struct tty_struct * tty, const u8 *buf, int count)
+static ssize_t rs_write(struct tty_struct * tty, const u8 *buf, size_t count)
 {
        int     c, ret = 0;
        struct serial_state *info = tty->driver_data;
index de36347e2145fd910a85994386e05c8675e974d8..a067628e01c81843b6b68fbe03c169da6397f774 100644 (file)
@@ -466,7 +466,8 @@ static irqreturn_t ehv_bc_tty_tx_isr(int irq, void *data)
  * ehv_bc_tty_write_room() will never lie, so the tty layer will never send us
  * too much data.
  */
-static int ehv_bc_tty_write(struct tty_struct *ttys, const u8 *s, int count)
+static ssize_t ehv_bc_tty_write(struct tty_struct *ttys, const u8 *s,
+                               size_t count)
 {
        struct ehv_bc_data *bc = ttys->driver_data;
        unsigned long flags;
index faa597ffbaf91e01268530bbee01c66abb545e96..4591f940b7a1511a807dc31141d8d4d179bd0d03 100644 (file)
@@ -185,7 +185,8 @@ static void goldfish_tty_hangup(struct tty_struct *tty)
        tty_port_hangup(tty->port);
 }
 
-static int goldfish_tty_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t goldfish_tty_write(struct tty_struct *tty, const u8 *buf,
+                                 size_t count)
 {
        goldfish_tty_do_write(tty->index, buf, count);
        return count;
index 4c60d15c7a6fd9aa361e79f8d6cd391741fb828b..e93e8072ec86c3809c4498c50f37bb3e382a48fc 100644 (file)
@@ -496,7 +496,7 @@ static int hvc_push(struct hvc_struct *hp)
        return n;
 }
 
-static int hvc_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t hvc_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        struct hvc_struct *hp = tty->driver_data;
        unsigned long flags;
index 2465d61b4e76ff5bcf51fe43ae1f110061aff2d1..1de91fa23b041c35754079a7d4dbf98827ec96c6 100644 (file)
@@ -1257,7 +1257,7 @@ static void hvcs_hangup(struct tty_struct * tty)
  * tty_hangup will allow hvcs_write time to complete execution before it
  * terminates our device.
  */
-static int hvcs_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t hvcs_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        struct hvcs_struct *hvcsd = tty->driver_data;
        unsigned int unit_address;
@@ -1299,7 +1299,8 @@ static int hvcs_write(struct tty_struct *tty, const u8 *buf, int count)
        unit_address = hvcsd->vdev->unit_address;
 
        while (count > 0) {
-               tosend = min(count, (HVCS_BUFF_LEN - hvcsd->chars_in_buffer));
+               tosend = min_t(unsigned, count,
+                              (HVCS_BUFF_LEN - hvcsd->chars_in_buffer));
                /*
                 * No more space, this probably means that the last call to
                 * hvcs_write() didn't succeed and the buffer was filled up.
index 46dd62df24421f9164289ee8099dd4d8a27533f9..c57bd85aa488f9bd772ef6ad45f3d6c25c7fcbf2 100644 (file)
@@ -904,7 +904,8 @@ static unsigned int hvsi_chars_in_buffer(struct tty_struct *tty)
        return hp->n_outbuf;
 }
 
-static int hvsi_write(struct tty_struct *tty, const u8 *source, int count)
+static ssize_t hvsi_write(struct tty_struct *tty, const u8 *source,
+                         size_t count)
 {
        struct hvsi_struct *hp = tty->driver_data;
        unsigned long flags;
index cd43208c523caba7b7c16e32f764a039b2221f21..b6de40815fb969e7a8fdc2f4bbc178a7fbde8087 100644 (file)
@@ -186,7 +186,8 @@ static void ipw_write_packet_sent_callback(void *callback_data,
        tty->tx_bytes_queued -= packet_length;
 }
 
-static int ipw_write(struct tty_struct *linux_tty, const u8 *buf, int count)
+static ssize_t ipw_write(struct tty_struct *linux_tty, const u8 *buf,
+                        size_t count)
 {
        struct ipw_tty *tty = linux_tty->driver_data;
        int room, ret;
index cf4ef0c38624450e921b441620952ec1b60dbc3a..369ec71c24ef056acb03b3e0a4897eff9ccd185d 100644 (file)
@@ -796,8 +796,8 @@ static void mips_ejtag_fdc_tty_hangup(struct tty_struct *tty)
        tty_port_hangup(tty->port);
 }
 
-static int mips_ejtag_fdc_tty_write(struct tty_struct *tty, const u8 *buf,
-                                   int total)
+static ssize_t mips_ejtag_fdc_tty_write(struct tty_struct *tty, const u8 *buf,
+                                       size_t total)
 {
        int count, block;
        struct mips_ejtag_fdc_tty_port *dport = tty->driver_data;
@@ -816,7 +816,7 @@ static int mips_ejtag_fdc_tty_write(struct tty_struct *tty, const u8 *buf,
         */
        spin_lock(&dport->xmit_lock);
        /* Work out how many bytes we can write to the xmit buffer */
-       total = min(total, (int)(priv->xmit_size - dport->xmit_cnt));
+       total = min_t(size_t, total, priv->xmit_size - dport->xmit_cnt);
        atomic_add(total, &priv->xmit_total);
        dport->xmit_cnt += total;
        /* Write the actual bytes (may need splitting if it wraps) */
index d94cf1be651bc63a43b1941d863016ef47ba815f..bf3f87ba3a92ce6fe5f238a3cb5920647ee882cb 100644 (file)
@@ -487,7 +487,7 @@ module_param(ttymajor, int, 0);
  */
 static int moxa_open(struct tty_struct *, struct file *);
 static void moxa_close(struct tty_struct *, struct file *);
-static int moxa_write(struct tty_struct *, const u8 *, int);
+static ssize_t moxa_write(struct tty_struct *, const u8 *, size_t);
 static unsigned int moxa_write_room(struct tty_struct *);
 static void moxa_flush_buffer(struct tty_struct *);
 static unsigned int moxa_chars_in_buffer(struct tty_struct *);
@@ -1499,7 +1499,7 @@ static void moxa_close(struct tty_struct *tty, struct file *filp)
        tty_port_close(&ch->port, tty, filp);
 }
 
-static int moxa_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t moxa_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        struct moxa_port *ch = tty->driver_data;
        unsigned long flags;
index a5dfd08d4ea2b3a56c5aebbdc6fe6502efc008d8..10aa4ed38793727f565797f7b6eddcee79cf28e2 100644 (file)
@@ -901,7 +901,7 @@ static void mxser_close(struct tty_struct *tty, struct file *filp)
        tty_port_close(tty->port, tty, filp);
 }
 
-static int mxser_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t mxser_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        struct mxser_port *info = tty->driver_data;
        unsigned long flags;
index d167e36873fe692d6e69d38765b2ce583fce1092..3e5cc30941a78d11736e21291a0ba6e7a69e4855 100644 (file)
@@ -4256,7 +4256,7 @@ static void gsmtty_hangup(struct tty_struct *tty)
        gsm_dlci_begin_close(dlci);
 }
 
-static int gsmtty_write(struct tty_struct *tty, const u8 *buf, int len)
+static ssize_t gsmtty_write(struct tty_struct *tty, const u8 *buf, size_t len)
 {
        int sent;
        struct gsm_dlci *dlci = tty->driver_data;
index b3756402f5d9fb2c376e5fee89cd4b873b219e96..02cd40147b3a80c2a2d0c919f0b8fd2e5fd82ca7 100644 (file)
@@ -1599,7 +1599,8 @@ static void ntty_hangup(struct tty_struct *tty)
  * called when the userspace process writes to the tty (/dev/noz*).
  * Data is inserted into a fifo, which is then read and transferred to the modem.
  */
-static int ntty_write(struct tty_struct *tty, const u8 *buffer, int count)
+static ssize_t ntty_write(struct tty_struct *tty, const u8 *buffer,
+                         size_t count)
 {
        int rval = -EINVAL;
        struct nozomi *dc = get_dc_by_tty(tty);
index 335f5744f320c0bf17942b0a23065257459601ab..df08f13052ff4b53f19f28803ea9baedfb64c718 100644 (file)
@@ -108,7 +108,7 @@ static void pty_unthrottle(struct tty_struct *tty)
  *     the other side of the pty/tty pair.
  */
 
-static int pty_write(struct tty_struct *tty, const u8 *buf, int c)
+static ssize_t pty_write(struct tty_struct *tty, const u8 *buf, size_t c)
 {
        struct tty_struct *to = tty->link;
 
index 29db413bbc03085139b37eb32c992efc47cda2b2..60a2915f5cfec39323134607d41fa4d74584d660 100644 (file)
@@ -73,7 +73,8 @@ static void rpmsg_tty_close(struct tty_struct *tty, struct file *filp)
        return tty_port_close(tty->port, tty, filp);
 }
 
-static int rpmsg_tty_write(struct tty_struct *tty, const u8 *buf, int len)
+static ssize_t rpmsg_tty_write(struct tty_struct *tty, const u8 *buf,
+                              size_t len)
 {
        struct rpmsg_tty_port *cport = tty->driver_data;
        struct rpmsg_device *rpdev;
@@ -86,7 +87,7 @@ static int rpmsg_tty_write(struct tty_struct *tty, const u8 *buf, int len)
        if (msg_max_size < 0)
                return msg_max_size;
 
-       msg_size = min(len, msg_max_size);
+       msg_size = min_t(unsigned int, len, msg_max_size);
 
        /*
         * Use rpmsg_trysend instead of rpmsg_send to send the message so the caller is not
index 2a04d19d5ec08d92cc28e4926a09aecb1d220094..e93850f6447ac3c639cba8318dbc5ac8ac5a38e5 100644 (file)
@@ -304,7 +304,8 @@ static unsigned int kgdb_nmi_tty_write_room(struct tty_struct *tty)
        return 2048;
 }
 
-static int kgdb_nmi_tty_write(struct tty_struct *tty, const u8 *buf, int c)
+static ssize_t kgdb_nmi_tty_write(struct tty_struct *tty, const u8 *buf,
+                                 size_t c)
 {
        int i;
 
index d5b682ff20b3715aa24b681418f9a618efa7cff5..7bdc21d5e13bce277f49e7a826f13c0d084ee252 100644 (file)
@@ -580,7 +580,7 @@ static void uart_flush_chars(struct tty_struct *tty)
        uart_start(tty);
 }
 
-static int uart_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t uart_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        struct uart_state *state = tty->driver_data;
        struct uart_port *port;
index 0264e9f7699cdb1a71241f13e609161186ac1d7a..8112d9d5a0d809b5a2ac45b5211da67a72df18d2 100644 (file)
@@ -745,7 +745,7 @@ static void update_tx_timer(struct slgt_info *info)
        }
 }
 
-static int write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        int ret = 0;
        struct slgt_info *info = tty->driver_data;
@@ -754,7 +754,7 @@ static int write(struct tty_struct *tty, const u8 *buf, int count)
        if (sanity_check(info, tty->name, "write"))
                return -EIO;
 
-       DBGINFO(("%s write count=%d\n", info->device_name, count));
+       DBGINFO(("%s write count=%zu\n", info->device_name, count));
 
        if (!info->tx_buf || (count > info->max_frame_size))
                return -EIO;
index 6b74ebaa0f2d19c8f52f85687b4aa620751a36c1..e4c4273993bc0fed671ca77749f674ac9ed02116 100644 (file)
@@ -29,7 +29,8 @@ static void ttynull_hangup(struct tty_struct *tty)
        tty_port_hangup(&ttynull_port);
 }
 
-static int ttynull_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t ttynull_write(struct tty_struct *tty, const u8 *buf,
+                            size_t count)
 {
        return count;
 }
index c223879039b86570d413fc9267a16d791afd8289..9cc569174c83dd1e928547f67127c520094e566a 100644 (file)
@@ -804,7 +804,7 @@ static void vcc_hangup(struct tty_struct *tty)
        tty_port_hangup(tty->port);
 }
 
-static int vcc_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t vcc_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        struct vcc_port *port;
        struct vio_vcc *pkt;
@@ -826,7 +826,8 @@ static int vcc_write(struct tty_struct *tty, const u8 *buf, int count)
 
        while (count > 0) {
                /* Minimum of data to write and space available */
-               tosend = min(count, (VCC_BUFF_LEN - port->chars_in_buffer));
+               tosend = min_t(size_t, count,
+                              (VCC_BUFF_LEN - port->chars_in_buffer));
 
                if (!tosend)
                        break;
index ea7c20d66acbc85ae0c0a57f875a46e62ab14ce2..5c47f77804f0f656a1a0e2b36791abeae61ee274 100644 (file)
@@ -3238,7 +3238,7 @@ int tioclinux(struct tty_struct *tty, unsigned long arg)
  * /dev/ttyN handling
  */
 
-static int con_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t con_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        int     retval;
 
index 913b07b30d332fdc12306b883b03e43887d790f6..3591880d96bd309883a415922e9db42cd0cc483c 100644 (file)
@@ -789,7 +789,8 @@ static void acm_tty_close(struct tty_struct *tty, struct file *filp)
        tty_port_close(&acm->port, tty, filp);
 }
 
-static int acm_tty_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t acm_tty_write(struct tty_struct *tty, const u8 *buf,
+                            size_t count)
 {
        struct acm *acm = tty->driver_data;
        int stat;
@@ -800,7 +801,7 @@ static int acm_tty_write(struct tty_struct *tty, const u8 *buf, int count)
        if (!count)
                return 0;
 
-       dev_vdbg(&acm->data->dev, "%d bytes from tty layer\n", count);
+       dev_vdbg(&acm->data->dev, "%zu bytes from tty layer\n", count);
 
        spin_lock_irqsave(&acm->write_lock, flags);
        wbn = acm_wb_alloc(acm);
@@ -817,7 +818,7 @@ static int acm_tty_write(struct tty_struct *tty, const u8 *buf, int count)
        }
 
        count = (count > acm->writesize) ? acm->writesize : count;
-       dev_vdbg(&acm->data->dev, "writing %d bytes\n", count);
+       dev_vdbg(&acm->data->dev, "writing %zu bytes\n", count);
        memcpy(wb->buf, buf, count);
        wb->len = count;
 
index 3e6b750aa4fc126a232d5e0a8060590fb6a2287e..a92eb6d90976858543ed9725ebe552314376331e 100644 (file)
@@ -734,12 +734,12 @@ exit:
        spin_unlock_irq(&port->port_lock);
 }
 
-static int gs_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t gs_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        struct gs_port  *port = tty->driver_data;
        unsigned long   flags;
 
-       pr_vdebug("gs_write: ttyGS%d (%p) writing %d bytes\n",
+       pr_vdebug("gs_write: ttyGS%d (%p) writing %zu bytes\n",
                        port->port_num, tty, count);
 
        spin_lock_irqsave(&port->port_lock, flags);
index 5b82bdd82ba94d04da7f69b35fe82370083de019..b74e98e94393262c6e7fb27149975598b5f998ea 100644 (file)
@@ -208,7 +208,8 @@ static void dbc_tty_close(struct tty_struct *tty, struct file *file)
        tty_port_close(&port->port, tty, file);
 }
 
-static int dbc_tty_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t dbc_tty_write(struct tty_struct *tty, const u8 *buf,
+                            size_t count)
 {
        struct dbc_port         *port = tty->driver_data;
        unsigned long           flags;
index 51f738ea3f77dca8718358a7697f68204f2ad48d..17b09f03ef84594cf47698d6964fc80a77b0a0dc 100644 (file)
@@ -361,7 +361,7 @@ static void serial_cleanup(struct tty_struct *tty)
        module_put(owner);
 }
 
-static int serial_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t serial_write(struct tty_struct *tty, const u8 *buf, size_t count)
 {
        struct usb_serial_port *port = tty->driver_data;
        int retval = -ENODEV;
@@ -369,7 +369,7 @@ static int serial_write(struct tty_struct *tty, const u8 *buf, int count)
        if (port->serial->dev->state == USB_STATE_NOTATTACHED)
                goto exit;
 
-       dev_dbg(&port->dev, "%s - %d byte(s)\n", __func__, count);
+       dev_dbg(&port->dev, "%s - %zu byte(s)\n", __func__, count);
 
        retval = port->serial->type->write(tty, port, buf, count);
        if (retval < 0)
index c5299d952e5998229a2bf1ff3f2b0736161833ad..18beff0cec1abb444bb1be7706785aadeb18035f 100644 (file)
@@ -72,8 +72,8 @@ struct serial_struct;
  *     is closed for the last time freeing up the resources. This is
  *     actually the second part of shutdown for routines that might sleep.
  *
- * @write: ``int ()(struct tty_struct *tty, const unsigned char *buf,
- *                 int count)``
+ * @write: ``ssize_t ()(struct tty_struct *tty, const unsigned char *buf,
+ *                 size_t count)``
  *
  *     This routine is called by the kernel to write a series (@count) of
  *     characters (@buf) to the @tty device. The characters may come from
@@ -356,7 +356,7 @@ struct tty_operations {
        void (*close)(struct tty_struct * tty, struct file * filp);
        void (*shutdown)(struct tty_struct *tty);
        void (*cleanup)(struct tty_struct *tty);
-       int  (*write)(struct tty_struct *tty, const u8 *buf, int count);
+       ssize_t (*write)(struct tty_struct *tty, const u8 *buf, size_t count);
        int  (*put_char)(struct tty_struct *tty, u8 ch);
        void (*flush_chars)(struct tty_struct *tty);
        unsigned int (*write_room)(struct tty_struct *tty);
index 3b5f8404dc84e4a6b75a3e46803a77e609c2af00..33b135ed59c42c7a6ba484addca479451f4fec34 100644 (file)
@@ -779,14 +779,15 @@ static void rfcomm_tty_close(struct tty_struct *tty, struct file *filp)
        tty_port_close(&dev->port, tty, filp);
 }
 
-static int rfcomm_tty_write(struct tty_struct *tty, const u8 *buf, int count)
+static ssize_t rfcomm_tty_write(struct tty_struct *tty, const u8 *buf,
+                               size_t count)
 {
        struct rfcomm_dev *dev = tty->driver_data;
        struct rfcomm_dlc *dlc = dev->dlc;
        struct sk_buff *skb;
        int sent = 0, size;
 
-       BT_DBG("tty %p count %d", tty, count);
+       BT_DBG("tty %p count %zu", tty, count);
 
        while (count) {
                size = min_t(uint, count, dlc->mtu);