struct n_hdlc_buf {
        struct list_head  list_item;
-       int               count;
-       char              buf[];
+       size_t            count;
+       u8                buf[];
 };
 
 struct n_hdlc_buf_list {
  */
 static void n_hdlc_send_frames(struct n_hdlc *n_hdlc, struct tty_struct *tty)
 {
-       register int actual;
        unsigned long flags;
        struct n_hdlc_buf *tbuf;
+       ssize_t actual;
 
 check_again:
 
 
        tbuf = n_hdlc_buf_get(&n_hdlc->tx_buf_list);
        while (tbuf) {
-               pr_debug("sending frame %p, count=%d\n", tbuf, tbuf->count);
+               pr_debug("sending frame %p, count=%zu\n", tbuf, tbuf->count);
 
                /* Send the next block of data to device */
                set_bit(TTY_DO_WRITE_WAKEUP, &tty->flags);
                                const u8 *data, size_t count)
 {
        struct n_hdlc *n_hdlc = tty->disc_data;
-       int error = 0;
        DECLARE_WAITQUEUE(wait, current);
        struct n_hdlc_buf *tbuf;
+       ssize_t error = 0;
 
        pr_debug("%s() called count=%zd\n", __func__, count);