Merge tag 'tty-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 21 Feb 2021 05:28:04 +0000 (21:28 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 21 Feb 2021 05:28:04 +0000 (21:28 -0800)
Pull tty/serial driver updates from Greg KH:
 "Here is the big set of tty/serial driver changes for 5.12-rc1.

  Nothing huge, just lots of good cleanups and additions:

   - n_tty line discipline cleanups

   - vt core cleanups and reworks to make the code more "modern"

   - stm32 driver additions

   - tty led support added to the tty core and led layer

   - minor serial driver fixups and additions

  All of these have been in linux-next for a while with no reported
  issues"

* tag 'tty-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (54 commits)
  serial: core: Remove BUG_ON(in_interrupt()) check
  vt_ioctl: Remove in_interrupt() check
  dt-bindings: serial: imx: Switch to my personal address
  vt: keyboard, use new API for keyboard_tasklet
  serial: stm32: improve platform_get_irq condition handling in init_port
  serial: ifx6x60: Remove driver for deprecated platform
  tty: fix up iterate_tty_read() EOVERFLOW handling
  tty: fix up hung_up_tty_read() conversion
  tty: fix up hung_up_tty_write() conversion
  tty: teach the n_tty ICANON case about the new "cookie continuations" too
  tty: teach n_tty line discipline about the new "cookie continuations"
  tty: clean up legacy leftovers from n_tty line discipline
  tty: implement read_iter
  tty: convert tty_ldisc_ops 'read()' function to take a kernel pointer
  serial: remove sirf prima/atlas driver
  serial: mxs-auart: Remove <asm/cacheflush.h>
  serial: mxs-auart: Remove serial_mxs_probe_dt()
  serial: fsl_lpuart: Use of_device_get_match_data()
  dt-bindings: serial: renesas,hscif: Add r8a779a0 support
  tty: serial: Drop unused efm32 serial driver
  ...

1  2 
drivers/bluetooth/hci_ldisc.c
drivers/net/ppp/ppp_async.c
drivers/net/ppp/ppp_synctty.c
drivers/tty/n_tty.c
drivers/tty/tty_io.c
include/linux/tty.h

Simple merge
Simple merge
Simple merge
@@@ -2077,10 -2072,16 +2072,13 @@@ static bool canon_copy_from_read_buf(st
                else
                        ldata->push = 0;
                tty_audit_push();
+               return false;
        }
-       return 0;
+       /* No EOL found - do a continuation retry if there is more data */
+       return ldata->read_tail != canon_head;
  }
  
 -extern ssize_t redirected_tty_write(struct file *, const char __user *,
 -                                                      size_t, loff_t *);
 -
  /**
   *    job_control             -       check job control
   *    @tty: tty
@@@ -142,10 -142,12 +142,10 @@@ LIST_HEAD(tty_drivers);                 /* linked lis
  /* Mutex to protect creating and releasing a tty */
  DEFINE_MUTEX(tty_mutex);
  
- static ssize_t tty_read(struct file *, char __user *, size_t, loff_t *);
+ static ssize_t tty_read(struct kiocb *, struct iov_iter *);
  static ssize_t tty_write(struct kiocb *, struct iov_iter *);
 -ssize_t redirected_tty_write(struct kiocb *, struct iov_iter *);
  static __poll_t tty_poll(struct file *, poll_table *);
  static int tty_open(struct inode *, struct file *);
 -long tty_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
  #ifdef CONFIG_COMPAT
  static long tty_compat_ioctl(struct file *file, unsigned int cmd,
                                unsigned long arg);
@@@ -421,7 -421,7 +421,8 @@@ extern void tty_kclose(struct tty_struc
  extern int tty_dev_name_to_number(const char *name, dev_t *number);
  extern int tty_ldisc_lock(struct tty_struct *tty, unsigned long timeout);
  extern void tty_ldisc_unlock(struct tty_struct *tty);
 +extern ssize_t redirected_tty_write(struct kiocb *, struct iov_iter *);
+ extern struct file *tty_release_redirect(struct tty_struct *tty);
  #else
  static inline void tty_kref_put(struct tty_struct *tty)
  { }