19 Aug, 2016

1 commit


21 May, 2016

1 commit

  • Pull tty and serial driver updates from Greg KH:
    "Here's the large TTY and Serial driver update for 4.7-rc1.

    A few new serial drivers are added here, and Peter has fixed a bunch
    of long-standing bugs in the tty layer and serial drivers as normal.
    Full details in the shortlog.

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

    * tag 'tty-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (88 commits)
    MAINTAINERS: 8250: remove website reference
    serial: core: Fix port mutex assert if lockdep disabled
    serial: 8250_dw: fix wrong logic in dw8250_check_lcr()
    tty: vt, finish looping on duplicate
    tty: vt, return error when con_startup fails
    QE-UART: add "fsl,t1040-ucc-uart" to of_device_id
    serial: mctrl_gpio: Drop support for out1-gpios and out2-gpios
    serial: 8250dw: Add device HID for future AMD UART controller
    Fix OpenSSH pty regression on close
    serial: mctrl_gpio: add IRQ locking
    serial: 8250: Integrate Fintek into 8250_base
    serial: mps2-uart: add support for early console
    serial: mps2-uart: add MPS2 UART driver
    dt-bindings: document the MPS2 UART bindings
    serial: sirf: Use generic uart-has-rtscts DT property
    serial: sirf: Introduce helper variable struct device_node *np
    serial: mxs-auart: Use generic uart-has-rtscts DT property
    serial: imx: Use generic uart-has-rtscts DT property
    doc: DT: Add Generic Serial Device Tree Bindings
    serial: 8250: of: Make tegra_serial_handle_break() static
    ...

    Linus Torvalds
     

15 May, 2016

2 commits

  • As of commit ebd2c8f6d2ec4012 ("serial: kill off uart_info"), the
    circular transmission buffer is part of struct uart_state instead of
    struct uart_info. Make it clear this structure is pointed to from struct
    uart_port.

    Change 'circ' to 'circ_buf' to match the structure name while we're at
    it.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Jonathan Corbet

    Geert Uytterhoeven
     
  • Stop referring to the mutex member of the tty_port struct as
    'port->mutex', as 'port' is ambiguous, and usually refers to the
    uart_port struct in this document. Use 'tty_port->mutex' instead,
    following the single existing use.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Jonathan Corbet

    Geert Uytterhoeven
     

02 May, 2016

1 commit

  • OpenSSH expects the (non-blocking) read() of pty master to return
    EAGAIN only if it has received all of the slave-side output after
    it has received SIGCHLD. This used to work on pre-3.12 kernels.

    This fix effectively forces non-blocking read() and poll() to
    block for parallel i/o to complete for all ttys. It also unwinds
    these changes:

    1) f8747d4a466ab2cafe56112c51b3379f9fdb7a12
    tty: Fix pty master read() after slave closes

    2) 52bce7f8d4fc633c9a9d0646eef58ba6ae9a3b73
    pty, n_tty: Simplify input processing on final close

    3) 1a48632ffed61352a7810ce089dc5a8bcd505a60
    pty: Fix input race when closing

    Inspired by analysis and patch from Marc Aurele La France

    Reported-by: Volth
    Reported-by: Marc Aurele La France
    BugLink: https://bugzilla.mindrot.org/show_bug.cgi?id=52
    BugLink: https://bugzilla.mindrot.org/show_bug.cgi?id=2492
    Signed-off-by: Brian Bloniarz
    Reviewed-by: Peter Hurley
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Brian Bloniarz
     

17 Apr, 2016

1 commit


16 Apr, 2016

3 commits


31 Mar, 2016

9 commits


28 Jan, 2016

1 commit

  • The chars_in_buffer() line discipline method serves no functional
    purpose, other than as a (dubious) debugging aid for mostly bit-rotting
    drivers. Despite being documented as an optional method, every caller
    is unconditionally executed (although conditionally compiled).
    Furthermore, direct tty->ldisc access without an ldisc ref is unsafe.
    Lastly, N_TTY's chars_in_buffer() has warned of removal since 3.12.

    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     

05 Oct, 2015

2 commits


13 Jun, 2015

2 commits


11 May, 2015

1 commit

  • A read() from a pty master may mistakenly indicate EOF (errno == -EIO)
    after the pty slave has closed, even though input data remains to be read.
    For example,

    pty slave | input worker | pty master
    | |
    | | n_tty_read()
    pty_write() | | input avail? no
    add data | | sleep
    schedule worker --->| | .
    |---> flush_to_ldisc() | .
    pty_close() | fill read buffer | .
    wait for worker | wakeup reader --->| .
    | read buffer full? |---> input avail ? yes
    |= 4096 so the ldisc read buffer
    is empty
    3. the subsequent read() occurs before the kicked worker has processed
    more input

    However, the underlying cause of the race is that data is pipelined, while
    tty state is not; ie., data already written by the pty slave end is not
    yet visible to the pty master end, but state changes by the pty slave end
    are visible to the pty master end immediately.

    Pipeline the TTY_OTHER_CLOSED state through input worker to the reader.
    1. Introduce TTY_OTHER_DONE which is set by the input worker when
    TTY_OTHER_CLOSED is set and either the input buffers are flushed or
    input processing has completed. Readers/polls are woken when
    TTY_OTHER_DONE is set.
    2. Reader/poll checks TTY_OTHER_DONE instead of TTY_OTHER_CLOSED.
    3. A new input worker is started from pty_close() after setting
    TTY_OTHER_CLOSED, which ensures the TTY_OTHER_DONE state will be
    set if the last input worker is already finished (or just about to
    exit).

    Remove tty_flush_to_ldisc(); no in-tree callers.

    Fixes: 52bce7f8d4fc ("pty, n_tty: Simplify input processing on final close")
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=96311
    BugLink: http://bugs.launchpad.net/bugs/1429756
    Cc: # 3.19+
    Reported-by: Andy Whitcroft
    Reported-by: H.J. Lu
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     

06 Nov, 2014

1 commit

  • The low-level uart driver may modify termios settings to override
    settings that are not compatible with the uart, such as CRTSCTS.
    Thus, callers of the low-level uart driver's set_termios() method must
    hold termios_rwsem write lock to prevent concurrent access to termios,
    in case such override occurs.

    The termios_rwsem lock requirement does not extend to console setup
    (ie., uart_set_options), as console setup cannot race with tty
    operations. Nor does this lock requirement extend to functions which
    cannot be concurrent with tty ioctls (ie., uart_port_startup() and
    uart_resume_port()).

    Further, always claim the port mutex to protect hardware
    re-reprogramming in the set_termios() uart driver method. Note this
    is unnecessary for console initialization in uart_set_options()
    which cannot be concurrent with other uart operations.

    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     

08 Oct, 2014

1 commit

  • Pull tty/serial driver updates from Greg KH:
    "Here's the big tty/serial driver patchset for 3.18-rc1.

    Lots of little things in here, some good work from Peter Hurley on the
    tty core, and in lots of drivers. There are also lots of other driver
    updates in here as well, full details in the changelogs.

    All have been in the linux-next tree for a while"

    * tag 'tty-3.18-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (99 commits)
    Revert "serial/core: Initialize the console pm state"
    tty: serial: 8250: use 32bit variable for rpm_tx_active
    tty: serial: msm: Add earlycon support
    serial/core: Initialize the console pm state
    serial: asc: Conditionally use readl_relaxed (COMPILE_TEST)
    serial: of-serial: add PM suspend/resume support
    m68k: AMIGA_BUILTIN_SERIAL should depend on TTY
    asm/uapi: Add definition of TIOC[SG]RS485
    tty/metag_da: Add console_poll module parameter
    serial: 8250_pci: remove rts_n override from Baytrail quirk
    serial: cadence: Add generic earlycon support
    serial: imx: change the wait even to interruptiable
    serial: imx: terminate the RX DMA when the UART is suspending
    serial: imx: fix throttle/unthrottle callbacks for hardware assisted flow control
    serial: 8250: Add Quark X1000 to 8250_pci.c
    tty: omap-serial: pull out calculation from baud_is_mode16
    tty: omap-serial: fix division by zero
    xen_hvc: no reason to write the type key on xenstore
    tty: serial: 8250_core: remove UART_IER_RDI in serial8250_stop_rx()
    tty: serial: 8250_core: use the ->line argument as a hint in serial8250_find_match_or_unused()
    ...

    Linus Torvalds
     

09 Sep, 2014

2 commits


04 Sep, 2014

1 commit


26 Aug, 2014

1 commit


29 May, 2014

1 commit


17 Apr, 2014

1 commit

  • These serial drivers were removed in kernel v3.1, so we can drop their
    documentation files and references to their magic numbers and
    parameters.

    There are still references to these old drivers in
    Documentation/devices.txt but I'm afraid they can't be removed.

    Signed-off-by: Jean Delvare
    Cc: Greg Kroah-Hartman
    Cc: Jiri Slaby
    Cc: Rob Landley
    Signed-off-by: Greg Kroah-Hartman

    Jean Delvare
     

11 Feb, 2014

1 commit

  • Some of the 00-INDEX files are somewhat outdated and some folders does
    not contain 00-INDEX at all. Only outdated (with the notably exception
    of spi) indexes are touched here, the 169 folders without 00-INDEX has
    not been touched.

    New 00-INDEX
    - spi/* was added in a series of commits dating back to 2006

    Added files (missing in (*/)00-INDEX)
    - dmatest.txt was added by commit 851b7e16a07d ("dmatest: run test via
    debugfs")
    - this_cpu_ops.txt was added by commit a1b2a555d637 ("percpu: add
    documentation on this_cpu operations")
    - ww-mutex-design.txt was added by commit 040a0a371005 ("mutex: Add
    support for wound/wait style locks")
    - bcache.txt was added by commit cafe56359144 ("bcache: A block layer
    cache")
    - kernel-per-CPU-kthreads.txt was added by commit 49717cb40410
    ("kthread: Document ways of reducing OS jitter due to per-CPU
    kthreads")
    - phy.txt was added by commit ff764963479a ("drivers: phy: add generic
    PHY framework")
    - block/null_blk was added by commit 12f8f4fc0314 ("null_blk:
    documentation")
    - module-signing.txt was added by commit 3cafea307642 ("Add
    Documentation/module-signing.txt file")
    - assoc_array.txt was added by commit 3cb989501c26 ("Add a generic
    associative array implementation.")
    - arm/IXP4xx was part of the initial repo
    - arm/cluster-pm-race-avoidance.txt was added by commit 7fe31d28e839
    ("ARM: mcpm: introduce helpers for platform coherency exit/setup")
    - arm/firmware.txt was added by commit 7366b92a77fc ("ARM: Add
    interface for registering and calling firmware-specific operations")
    - arm/kernel_mode_neon.txt was added by commit 2afd0a05241d ("ARM:
    7825/1: document the use of NEON in kernel mode")
    - arm/tcm.txt was added by commit bc581770cfdd ("ARM: 5580/2: ARM TCM
    (Tightly-Coupled Memory) support v3")
    - arm/vlocks.txt was added by commit 9762f12d3e05 ("ARM: mcpm: Add
    baremetal voting mutexes")
    - blackfin/gptimers-example.c, Makefile was added by commit
    4b60779d5ea7 ("Blackfin: add an example showing how to use the
    gptimers API")
    - devicetree/usage-model.txt was added by commit 31134efc681a ("dt:
    Linux DT usage model documentation")
    - fb/api.txt was added by commit fb21c2f42879 ("fbdev: Add FOURCC-based
    format configuration API")
    - fb/sm501.txt was added by commit e6a049807105 ("video, sm501: add
    edid and commandline support")
    - fb/udlfb.txt was added by commit 96f8d864afd6 ("fbdev: move udlfb out
    of staging.")
    - filesystems/Makefile was added by commit 1e0051ae48a2
    ("Documentation/fs/: split txt and source files")
    - filesystems/nfs/nfsd-admin-interfaces.txt was added by commit
    8a4c6e19cfed ("nfsd: document kernel interfaces for nfsd
    configuration")
    - ide/warm-plug-howto.txt was added by commit f74c91413ec6 ("ide: add
    warm-plug support for IDE devices (take 2)")
    - laptops/Makefile was added by commit d49129accc21
    ("Documentation/laptop/: split txt and source files")
    - leds/leds-blinkm.txt was added by commit b54cf35a7f65 ("LEDS: add
    BlinkM RGB LED driver, documentation and update MAINTAINERS")
    - leds/ledtrig-oneshot.txt was added by commit 5e417281cde2 ("leds: add
    oneshot trigger")
    - leds/ledtrig-transient.txt was added by commit 44e1e9f8e705 ("leds:
    add new transient trigger for one shot timer activation")
    - m68k/README.buddha was part of the initial repo
    - networking/LICENSE.(qla3xxx|qlcnic|qlge) was added by commits
    40839129f779, c4e84bde1d59, 5a4faa873782
    - networking/Makefile was added by commit 3794f3e812ef ("docsrc: build
    Documentation/ sources")
    - networking/i40evf.txt was added by commit 105bf2fe6b32 ("i40evf: add
    driver to kernel build system")
    - networking/ipsec.txt was added by commit b3c6efbc36e2 ("xfrm: Add
    file to document IPsec corner case")
    - networking/mac80211-auth-assoc-deauth.txt was added by commit
    3cd7920a2be8 ("mac80211: add auth/assoc/deauth flow diagram")
    - networking/netlink_mmap.txt was added by commit 5683264c3981
    ("netlink: add documentation for memory mapped I/O")
    - networking/nf_conntrack-sysctl.txt was added by commit c9f9e0e1597f
    ("netfilter: doc: add nf_conntrack sysctl api documentation") lan)
    - networking/team.txt was added by commit 3d249d4ca7d0 ("net: introduce
    ethernet teaming device")
    - networking/vxlan.txt was added by commit d342894c5d2f ("vxlan:
    virtual extensible lan")
    - power/runtime_pm.txt was added by commit 5e928f77a09a ("PM: Introduce
    core framework for run-time PM of I/O devices (rev. 17)")
    - power/charger-manager.txt was added by commit 3bb3dbbd56ea
    ("power_supply: Add initial Charger-Manager driver")
    - RCU/lockdep-splat.txt was added by commit d7bd2d68aa2e ("rcu:
    Document interpretation of RCU-lockdep splats")
    - s390/kvm.txt was added by 5ecee4b (KVM: s390: API documentation)
    - s390/qeth.txt was added by commit b4d72c08b358 ("qeth: bridgeport
    support - basic control")
    - scheduler/sched-bwc.txt was added by commit 88ebc08ea9f7 ("sched: Add
    documentation for bandwidth control")
    - scsi/advansys.txt was added by commit 4bd6d7f35661 ("[SCSI] advansys:
    Move documentation to Documentation/scsi")
    - scsi/bfa.txt was added by commit 1ec90174bdb4 ("[SCSI] bfa: add
    readme file")
    - scsi/bnx2fc.txt was added by commit 12b8fc10eaf4 ("[SCSI] bnx2fc: Add
    driver documentation")
    - scsi/cxgb3i.txt was added by commit c3673464ebc0 ("[SCSI] cxgb3i: Add
    cxgb3i iSCSI driver.")
    - scsi/hpsa.txt was added by commit 992ebcf14f3c ("[SCSI] hpsa: Add
    hpsa.txt to Documentation/scsi")
    - scsi/link_power_management_policy.txt was added by commit
    ca77329fb713 ("[libata] Link power management infrastructure")
    - scsi/osd.txt was added by commit 78e0c621deca ("[SCSI] osd:
    Documentation for OSD library")
    - scsi/scsi-parameter.txt was created/moved by commit 163475fb111c
    ("Documentation: move SCSI parameters to their own text file")
    - serial/driver was part of the initial repo
    - serial/n_gsm.txt was added by commit 323e84122ec6 ("n_gsm: add a
    documentation")
    - timers/Makefile was added by commit 3794f3e812ef ("docsrc: build
    Documentation/ sources")
    - virt/kvm/s390.txt was added by commit d9101fca3d57 ("KVM: s390:
    diagnose call documentation")
    - vm/split_page_table_lock was added by commit 49076ec2ccaf ("mm:
    dynamically allocate page->ptl if it cannot be embedded to struct
    page")
    - w1/slaves/w1_ds28e04 was added by commit fbf7f7b4e2ae ("w1: Add
    1-wire slave device driver for DS28E04-100")
    - w1/masters/omap-hdq was added by commit e0a29382c6f5 ("hdq:
    documentation for OMAP HDQ")
    - x86/early-microcode.txt was added by commit 0d91ea86a895 ("x86, doc:
    Documentation for early microcode loading")
    - x86/earlyprintk.txt was added by commit a1aade478862 ("x86/doc:
    mini-howto for using earlyprintk=dbgp")
    - x86/entry_64.txt was added by commit 8b4777a4b50c ("x86-64: Document
    some of entry_64.S")
    - x86/pat.txt was added by commit d27554d874c7 ("x86: PAT
    documentation")

    Moved files
    - arm/kernel_user_helpers.txt was moved out of arch/arm/kernel by
    commit 37b8304642c7 ("ARM: kuser: move interface documentation out of
    the source code")
    - efi-stub.txt was moved out of x86/ and down into Documentation/ in
    commit 4172fe2f8a47 ("EFI stub documentation updates")
    - laptops/hpfall.c was moved out of hwmon/ and into laptops/ in commit
    efcfed9bad88 ("Move hp_accel to drivers/platform/x86")
    - commit 5616c23ad9cd ("x86: doc: move x86-generic documentation from
    Doc/x86/i386"):
    * x86/usb-legacy-support.txt
    * x86/boot.txt
    * x86/zero_page.txt
    - power/video_extension.txt was moved to acpi in commit 70e66e4df191
    ("ACPI / video: move video_extension.txt to Documentation/acpi")

    Removed files (left in 00-INDEX)
    - memory.txt was removed by commit 00ea8990aadf ("memory.txt: remove
    stray information")
    - gpio.txt was moved to gpio/ in commit fd8e198cfcaa ("Documentation:
    gpiolib: document new interface")
    - networking/DLINK.txt was removed by commit 168e06ae26dd
    ("drivers/net: delete old parallel port de600/de620 drivers")
    - serial/hayes-esp.txt was removed by commit f53a2ade0bb9 ("tty: esp:
    remove broken driver")
    - s390/TAPE was removed by commit 9e280f669308 ("[S390] remove tape
    block docu")
    - vm/locking was removed by commit 57ea8171d2bc ("mm: documentation:
    remove hopelessly out-of-date locking doc")
    - laptops/acer-wmi.txt was remvoed by commit 020036678e81 ("acer-wmi:
    Delete out-of-date documentation")

    Typos/misc issues
    - rpc-server-gss.txt was added as knfsd-rpcgss.txt in commit
    030d794bf498 ("SUNRPC: Use gssproxy upcall for server RPCGSS
    authentication.")
    - commit b88cf73d9278 ("net: add missing entries to
    Documentation/networking/00-INDEX")
    * generic-hdlc.txt was added as generic_hdlc.txt
    * spider_net.txt was added as spider-net.txt
    - w1/master/mxc-w1 was added as mxc_w1 by commit a5fd9139f74c ("w1: add
    1-wire master driver for i.MX27 / i.MX31")
    - s390/zfcpdump.txt was added as zfcpdump by commit 6920c12a407e
    ("[S390] Add Documentation/s390/00-INDEX.")

    Signed-off-by: Henrik Austad
    Reviewed-by: Paul E. McKenney [rcu bits]
    Acked-by: Rob Landley
    Cc: Jiri Kosina
    Cc: Thomas Gleixner
    Cc: Rob Herring
    Cc: David S. Miller
    Cc: Mark Brown
    Cc: "H. Peter Anvin"
    Cc: Ingo Molnar
    Cc: Gleb Natapov
    Cc: Linus Torvalds
    Cc: Len Brown
    Cc: James Bottomley
    Cc: Jean-Christophe Plagniol-Villard
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Henrik Austad
     

17 Oct, 2013

1 commit

  • This deletes the .set_wake() callback in the struct uart_ops.
    Apparently this has been unused since pre-git times. In the
    old-2.6-bkcvs it is deleted as part of a changeset removing
    the PM_SET_WAKEUP from pm_request_t which is since also deleted
    from the kernel.

    The apropriate way to set wakeups in the kernel is to have a
    code snippet like this in .suspend() or .runtime_suspend()
    callbacks:

    static int foo_suspend(struct device *dev)
    {
    if (device_may_wakeup(dev)) {
    /* Enable wakeups, set internal states */
    }
    }

    This specific callback is not coming back.

    Cc: Rafael J. Wysocki
    Cc: Len Brown
    Cc: Pavel Machek
    Cc: Kevin Hilman
    Cc: Dmitry Artamonow
    Signed-off-by: Linus Walleij
    Signed-off-by: Greg Kroah-Hartman

    Linus Walleij
     

04 Jun, 2013

1 commit

  • Support for the Stallion multiport serial drivers was removed in v3.1.
    Clean up their last references in the tree: mainly an outdated Kconfig
    entry and unneeded documentation.

    Signed-off-by: Paul Bolle
    Acked-by: Arnd Bergmann
    Signed-off-by: Greg Kroah-Hartman

    Paul Bolle
     

16 Jan, 2013

2 commits


17 Aug, 2012

1 commit

  • The only Computone support left in the kernel is in
    drivers/tty/serial/8250/8250_pci.c. CONFIG_COMPUTONE is no longer a valid
    option. Therefore, remove firmware, documentation, and the last vestiges
    of this driver.

    Cc: Rob Landley
    Cc: Paul Gortmaker
    Cc: Ben Hutchings
    Cc: James Bottomley
    Cc: Dan Williams
    Signed-off-by: Tim Gardner
    Signed-off-by: Andrew Morton
    Signed-off-by: Greg Kroah-Hartman

    Tim Gardner
     

18 May, 2012

1 commit

  • The support for CONFIG_MCA is being removed, since the 20
    year old hardware simply isn't capable of meeting today's
    software demands on CPU and memory resources.

    This commit removes the MCA specific 8250 UART code.

    Cc: Alan Cox
    Cc: linux-serial@vger.kernel.org
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: Paul Gortmaker

    Paul Gortmaker
     

31 Mar, 2012

1 commit

  • Usage of /etc/modprobe.conf file was deprecated by module-init-tools and
    is no longer parsed by new kmod tool. References to this file are
    replaced in Documentation, comments and Kconfig according to the
    context.

    There are also some references to the old /etc/modules.conf from 2.4
    kernels that are being removed.

    Signed-off-by: Lucas De Marchi
    Acked-by: Takashi Iwai
    Acked-by: Mauro Carvalho Chehab
    Signed-off-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Lucas De Marchi