08 Feb, 2016

1 commit


07 Feb, 2016

7 commits

  • Considering current pty code and multiple devpts instances, it's possible
    to umount a devpts file system while a program still has /dev/tty opened
    pointing to a previosuly closed pty pair in that instance. In the case all
    ptmx and pts/N files are closed, umount can be done. If the program closes
    /dev/tty after umount is done, devpts_kill_index will use now an invalid
    super_block, which was already destroyed in the umount operation after
    running ->kill_sb. This is another "use after free" type of issue, but now
    related to the allocated super_block instance.

    To avoid the problem (warning at ida_remove and potential crashes) for
    this specific case, I added two functions in devpts which grabs additional
    references to the super_block, which pty code now uses so it makes sure
    the super block structure is still valid until pty shutdown is done.
    I also moved the additional inode references to the same functions, which
    also covered similar case with inode being freed before /dev/tty final
    close/shutdown.

    Signed-off-by: Herton R. Krzesinski
    Cc: stable@vger.kernel.org # 2.6.29+
    Reviewed-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Herton R. Krzesinski
     
  • This change fixes a bug for a corner case where we have the the last
    release from a pty master/slave coming from a previously opened /dev/tty
    file. When this happens, the tty->driver_data can be stale, due to all
    ptmx or pts/N files having already been closed before (and thus the inode
    related to these files, which tty->driver_data points to, being already
    freed/destroyed).

    The fix here is to keep a reference on the opened master ptmx inode.
    We maintain the inode referenced until the final pty_unix98_shutdown,
    and only pass this inode to devpts_kill_index.

    Signed-off-by: Herton R. Krzesinski
    Cc: # 2.6.29+
    Reviewed-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Herton R. Krzesinski
     
  • WCH382 2S board is a PCIe card with 2 DB9 COM ports detected as
    Serial controller: Device 1c00:3253 (rev 10) (prog-if 05 [16850])

    Signed-off-by: Jeremy McNicoll
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Jeremy McNicoll
     
  • The wait_for_xmitr() function is only used if CONFIG_CONSOLE_POLL
    or CONFIG_SERIAL_OMAP_CONSOLE are set, but when both are disabled,
    the compiler warns about it being unused:

    drivers/tty/serial/omap-serial.c:1168:13: warning: 'wait_for_xmitr' defined but not used [-Wunused-func

    We could add more #ifdefs to work around it, but adding __maybe_unused
    seems nicer.

    Signed-off-by: Arnd Bergmann
    Fixes: 2172076d2399 ("serial/omap-serial: Deinline wait_for_xmitr, save 165 bytes")
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     
  • The omap-serial driver emulates RS485 delays using software timers,
    but neglects to clamp the input values from the unprivileged
    ioctl(TIOCSRS485). Because the software implementation busy-waits,
    malicious userspace could stall the cpu for ~49 days.

    Clamp the input values to < 100ms.

    Fixes: 4a0ac0f55b18 ("OMAP: add RS485 support")
    Cc: # 3.12+
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • The recently added uniphier 8250 port driver supports early console
    probing, and it supports being built as a module, but the combination
    of the two fails to link:

    ERROR: "early_serial8250_setup" [drivers/tty/serial/8250/8250_uniphier.ko] undefined!

    Given that earlycon support in a loadable module makes no sense,
    making that code conditional on 'MODULE' is a correct solution.

    Signed-off-by: Arnd Bergmann
    Fixes: b8d20e06eaad ("serial: 8250_uniphier: add earlycon support")
    Acked-by: Masahiro Yamada
    Signed-off-by: Greg Kroah-Hartman

    Arnd Bergmann
     
  • When the tty lock is interrupted on attempted re-open, 2 tty krefs
    are still held. Drop extra kref before returning failure from
    tty_lock_interruptible(), and drop lookup kref before returning
    failure from tty_open().

    Fixes: 0bfd464d3fdd ("tty: Wait interruptibly for tty lock on reopen")
    Reported-by: Dmitry Vyukov
    Signed-off-by: Peter Hurley
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     

01 Feb, 2016

2 commits

  • Pull tty/serial fixes from Greg KH:
    "Here are some small tty/serial driver fixes for 4.5-rc2.

    They resolve a number of reported problems (the ioctl one specifically
    has been pointed out by numerous people) and one patch adds some new
    device ids for the 8250_pci driver. All have been in linux-next
    successfully"

    * tag 'tty-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    serial: 8250_pci: Add Intel Broadwell ports
    staging/speakup: Use tty_ldisc_ref() for paste kworker
    n_tty: Fix unsafe reference to "other" ldisc
    tty: Fix unsafe ldisc reference via ioctl(TIOCGETD)
    tty: Retry failed reopen if tty teardown in-progress
    tty: Wait interruptibly for tty lock on reopen

    Linus Torvalds
     
  • Pull staging fixes from Greg KH:
    "Here are some small staging driver fixes for 4.5-rc2.

    One of them predated 4.4-final, but I missed that merge window due to
    the holliday. The others fix reported issues that have come up
    recently. The tty change is needed for the speakup driver fix and has
    the ack of the tty driver maintainer as well, i.e. myself :)

    All have been in linux-next with no reported issues"

    * tag 'staging-4.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
    Staging: speakup: fix read scrolled-back VT
    Staging: speakup: Fix getting port information
    Revert "Staging: panel: usleep_range is preferred over udelay"
    iio: adis_buffer: Fix out-of-bounds memory access

    Linus Torvalds
     

30 Jan, 2016

1 commit

  • Some recent (early 2015) macbooks have Intel Broadwell where LPSS UARTs are
    PCI enumerated instead of ACPI. The LPSS UART block is pretty much same as
    used on Intel Baytrail so we can reuse the existing Baytrail setup code.

    Add both Broadwell LPSS UART ports to the list of supported devices.

    Signed-off-by: Leif Liddy
    Signed-off-by: Mika Westerberg
    Reviewed-by: Andy Shevchenko
    Reviewed-by: Heikki Krogerus
    Cc: stable
    Signed-off-by: Greg Kroah-Hartman

    Mika Westerberg
     

29 Jan, 2016

1 commit

  • Previously, speakup would always read the non-scrolled part of the VT,
    even when the VT is scrolled back with shift-page. This patch makes
    vt.c export screen_pos so that speakup can use it to properly access
    the content of the scrolled-back VT.

    This was tested with both vgacon and fbcon.

    Signed-off-by: Samuel Thibault
    Reviewed-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Samuel Thibault
     

27 Jan, 2016

4 commits

  • Although n_tty_check_unthrottle() has a valid ldisc reference (since
    the tty core gets the ldisc ref in tty_read() before calling the line
    discipline read() method), it does not have a valid ldisc reference to
    the "other" pty of a pty pair. Since getting an ldisc reference for
    tty->link essentially open-codes tty_wakeup(), just replace with the
    equivalent tty_wakeup().

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

    Peter Hurley
     
  • ioctl(TIOCGETD) retrieves the line discipline id directly from the
    ldisc because the line discipline id (c_line) in termios is untrustworthy;
    userspace may have set termios via ioctl(TCSETS*) without actually
    changing the line discipline via ioctl(TIOCSETD).

    However, directly accessing the current ldisc via tty->ldisc is
    unsafe; the ldisc ptr dereferenced may be stale if the line discipline
    is changing via ioctl(TIOCSETD) or hangup.

    Wait for the line discipline reference (just like read() or write())
    to retrieve the "current" line discipline id.

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

    Peter Hurley
     
  • A small window exists where a tty reopen will observe the tty
    just prior to imminent teardown (tty->count == 0); in this case, open()
    returns EIO to userspace.

    Instead, retry the open after checking for signals and yielding;
    this interruptible retry loop allows teardown to commence and initialize
    a new tty on retry. Never retry the BSD master pty reopen; there is no
    guarantee the pty pair teardown is imminent since the slave file
    descriptors may remain open indefinitely.

    Signed-off-by: Peter Hurley
    Cc: stable # 4.4
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     
  • Allow a signal to interrupt the wait for a tty reopen; eg., if
    the tty has starting final close and is waiting for the device to
    drain.

    Signed-off-by: Peter Hurley
    Cc: stable # 4.4
    Signed-off-by: Greg Kroah-Hartman

    Peter Hurley
     

21 Jan, 2016

1 commit

  • Pull ARM SoC driver updates from Olof Johansson:
    "Driver updates for ARM SoCs. Some for SoC-family code under
    drivers/soc, but also some other driver updates that don't belong
    anywhere else. We also bring in the drivers/reset code through
    arm-soc.

    Some of the larger updates:

    - Qualcomm support for SMEM, SMSM, SMP2P. All used to communicate
    with other parts of the chip/board on these platforms, all
    proprietary protocols that don't fit into other subsystems and live
    in drivers/soc for now.

    - System bus driver for UniPhier

    - Driver for the TI Wakeup M3 IPC device

    - Power management for Raspberry PI

    + Again a bunch of other smaller updates and patches"

    * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (38 commits)
    bus: uniphier: allow only built-in driver
    ARM: bcm2835: clarify RASPBERRYPI_FIRMWARE dependency
    MAINTAINERS: Drop Kumar Gala from QCOM
    bus: uniphier-system-bus: add UniPhier System Bus driver
    ARM: bcm2835: add rpi power domain driver
    dt-bindings: add rpi power domain driver bindings
    ARM: bcm2835: Define two new packets from the latest firmware.
    drivers/soc: make mediatek/mtk-scpsys.c explicitly non-modular
    soc: mediatek: SCPSYS: Add regulator support
    MAINTAINERS: Change QCOM entries
    soc: qcom: smd-rpm: Add existing platform support
    memory/tegra: Add number of TLB lines for Tegra124
    reset: hi6220: fix modular build
    soc: qcom: Introduce WCNSS_CTRL SMD client
    ARM: qcom: select ARM_CPU_SUSPEND for power management
    MAINTAINERS: Add rules for Qualcomm dts files
    soc: qcom: enable smsm/smp2p modular build
    serial: msm_serial: Make config tristate
    soc: qcom: smp2p: Qualcomm Shared Memory Point to Point
    soc: qcom: smsm: Add driver for Qualcomm SMSM
    ...

    Linus Torvalds
     

18 Jan, 2016

1 commit

  • Pull GPIO updates from Linus Walleij:
    "Here is the bulk of GPIO changes for v4.5.

    Notably there are big refactorings mostly by myself, aimed at getting
    the gpio_chip into a shape that makes me believe I can proceed to
    preserve state for a proper userspace ABI (character device) that has
    already been proposed once, but resulted in the feedback that I need
    to go back and restructure stuff. So I've been restructuring stuff.
    On the way I ran into brokenness (return code from the get_value()
    callback) and had to fix it. Also, refactored generic GPIO to be
    simpler.

    Some of that is still waiting to trickle down from the subsystems all
    over the kernel that provide random gpio_chips, I've touched every
    single GPIO driver in the kernel now, oh man I didn't know I was
    responsible for so much...

    Apart from that we're churning along as usual.

    I took some effort to test and retest so it should merge nicely and we
    shook out a couple of bugs in -next.

    Infrastructural changes:

    - In struct gpio_chip, rename the .dev node to .parent to better
    reflect the fact that this is not the GPIO struct device
    abstraction. We will add that soon so this would be totallt
    confusing.

    - It was noted that the driver .get_value() callbacks was sometimes
    reporting negative -ERR values to the gpiolib core, expecting them
    to be propagated to consumer gpiod_get_value() and gpio_get_value()
    calls. This was not happening, so as there was a mess of drivers
    returning negative errors and some returning "anything else than
    zero" to indicate that a line was active. As some would have bit
    31 set to indicate "line active" it clashed with negative error
    codes. This is fixed by the largeish series clamping values in all
    drivers with !!value to [0,1] and then augmenting the code to
    propagate error codes to consumers. (Includes some ACKed patches
    in other subsystems.)

    - Add a void *data pointer to struct gpio_chip. The container_of()
    design pattern is indeed very nice, but we want to reform the
    struct gpio_chip to be a non-volative, stateless business, and keep
    states internal to the gpiolib to be able to hold on to the state
    when adding a proper userspace ABI (character device) further down
    the road. To achieve this, drivers need a handle at the internal
    state that is not dependent on their struct gpio_chip() so we add
    gpiochip_add_data() and gpiochip_get_data() following the pattern
    of many other subsystems. All the "use gpiochip data pointer"
    patches transforms drivers to this scheme.

    - The Generic GPIO chip header has been merged into the general
    header, and the custom header for that
    removed. Instead of having a separate mm_gpio_chip struct for
    these generic drivers, merge that into struct gpio_chip,
    simplifying the code and removing the need for separate and
    confusing includes.

    Misc improvements:

    - Stabilize the way GPIOs are looked up from the ACPI legacy
    specification.

    - Incremental driver features for PXA, PCA953X, Lantiq (patches from
    the OpenWRT community), RCAR, Zynq, PL061, 104-idi-48

    New drivers:

    - Add a GPIO chip to the ALSA SoC AC97 driver.

    - Add a new Broadcom NSP SoC driver (this lands in the pinctrl dir,
    but the branch is merged here too to account for infrastructural
    changes).

    - The sx150x driver now supports the sx1502"

    * tag 'gpio-v4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (220 commits)
    gpio: generic: make bgpio_pdata always visible
    gpiolib: fix chip order in gpio list
    gpio: mpc8xxx: Do not use gpiochip_get_data() in mpc8xxx_gpio_save_regs()
    gpio: mm-lantiq: Do not use gpiochip_get_data() in ltq_mm_save_regs()
    gpio: brcmstb: Allow building driver for BMIPS_GENERIC
    gpio: brcmstb: Set endian flags for big-endian MIPS
    gpio: moxart: fix build regression
    gpio: xilinx: Do not use gpiochip_get_data() in xgpio_save_regs()
    leds: pca9532: use gpiochip data pointer
    leds: tca6507: use gpiochip data pointer
    hid: cp2112: use gpiochip data pointer
    bcma: gpio: use gpiochip data pointer
    avr32: gpio: use gpiochip data pointer
    video: fbdev: via: use gpiochip data pointer
    gpio: pch: Optimize pch_gpio_get()
    Revert "pinctrl: lantiq: Implement gpio_chip.to_irq"
    pinctrl: nsp-gpio: use gpiochip data pointer
    pinctrl: vt8500-wmt: use gpiochip data pointer
    pinctrl: exynos5440: use gpiochip data pointer
    pinctrl: at91-pio4: use gpiochip data pointer
    ...

    Linus Torvalds
     

16 Jan, 2016

1 commit

  • Pull powerpc updates from Michael Ellerman:
    "Core:
    - Ground work for the new Power9 MMU from Aneesh Kumar K.V
    - Optimise FP/VMX/VSX context switching from Anton Blanchard

    Misc:
    - Various cleanups from Krzysztof Kozlowski, John Ogness, Rashmica
    Gupta, Russell Currey, Gavin Shan, Daniel Axtens, Michael Neuling,
    Andrew Donnellan
    - Allow wrapper to work on non-english system from Laurent Vivier
    - Add rN aliases to the pt_regs_offset table from Rashmica Gupta
    - Fix module autoload for rackmeter & axonram drivers from Luis de
    Bethencourt
    - Include KVM guest test in all interrupt vectors from Paul Mackerras
    - Fix DSCR inheritance over fork() from Anton Blanchard
    - Make value-returning atomics & {cmp}xchg* & their atomic_ versions
    fully ordered from Boqun Feng
    - Print MSR TM bits in oops messages from Michael Neuling
    - Add TM signal return & invalid stack selftests from Michael Neuling
    - Limit EPOW reset event warnings from Vipin K Parashar
    - Remove the Cell QPACE code from Rashmica Gupta
    - Append linux_banner to exception information in xmon from Rashmica
    Gupta
    - Add selftest to check if VSRs are corrupted from Rashmica Gupta
    - Remove broken GregorianDay() from Daniel Axtens
    - Import Anton's context_switch2 benchmark into selftests from
    Michael Ellerman
    - Add selftest script to test HMI functionality from Daniel Axtens
    - Remove obsolete OPAL v2 support from Stewart Smith
    - Make enter_rtas() private from Michael Ellerman
    - PPR exception cleanups from Michael Ellerman
    - Add page soft dirty tracking from Laurent Dufour
    - Add support for Nvlink NPUs from Alistair Popple
    - Add support for kexec on 476fpe from Alistair Popple
    - Enable kernel CPU dlpar from sysfs from Nathan Fontenot
    - Copy only required pieces of the mm_context_t to the paca from
    Michael Neuling
    - Add a kmsg_dumper that flushes OPAL console output on panic from
    Russell Currey
    - Implement save_stack_trace_regs() to enable kprobe stack tracing
    from Steven Rostedt
    - Add HWCAP bits for Power9 from Michael Ellerman
    - Fix _PAGE_PTE breaking swapoff from Aneesh Kumar K.V
    - Fix _PAGE_SWP_SOFT_DIRTY breaking swapoff from Hugh Dickins
    - scripts/recordmcount.pl: support data in text section on powerpc
    from Ulrich Weigand
    - Handle R_PPC64_ENTRY relocations in modules from Ulrich Weigand

    cxl:
    - cxl: Fix possible idr warning when contexts are released from
    Vaibhav Jain
    - cxl: use correct operator when writing pcie config space values
    from Andrew Donnellan
    - cxl: Fix DSI misses when the context owning task exits from Vaibhav
    Jain
    - cxl: fix build for GCC 4.6.x from Brian Norris
    - cxl: use -Werror only with CONFIG_PPC_WERROR from Brian Norris
    - cxl: Enable PCI device ID for future IBM CXL adapter from Uma
    Krishnan

    Freescale:
    - Freescale updates from Scott: Highlights include moving QE code out
    of arch/powerpc (to be shared with arm), device tree updates, and
    minor fixes"

    * tag 'powerpc-4.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (149 commits)
    powerpc/module: Handle R_PPC64_ENTRY relocations
    scripts/recordmcount.pl: support data in text section on powerpc
    powerpc/powernv: Fix OPAL_CONSOLE_FLUSH prototype and usages
    powerpc/mm: fix _PAGE_SWP_SOFT_DIRTY breaking swapoff
    powerpc/mm: Fix _PAGE_PTE breaking swapoff
    cxl: Enable PCI device ID for future IBM CXL adapter
    cxl: use -Werror only with CONFIG_PPC_WERROR
    cxl: fix build for GCC 4.6.x
    powerpc: Add HWCAP bits for Power9
    powerpc/powernv: Reserve PE#0 on NPU
    powerpc/powernv: Change NPU PE# assignment
    powerpc/powernv: Fix update of NVLink DMA mask
    powerpc/powernv: Remove misleading comment in pci.c
    powerpc: Implement save_stack_trace_regs() to enable kprobe stack tracing
    powerpc: Fix build break due to paca mm_context_t changes
    cxl: Fix DSI misses when the context owning task exits
    MAINTAINERS: Update Scott Wood's e-mail address
    powerpc/powernv: Fix minor off-by-one error in opal_mce_check_early_recovery()
    powerpc: Fix style of self-test config prompts
    powerpc/powernv: Only delay opal_rtc_read() retry when necessary
    ...

    Linus Torvalds
     

14 Jan, 2016

1 commit

  • Pull tty/serial updates from Greg KH:
    "Here is the big serial/tty driver update for 4.5-rc1.

    Lots of driver updates and some tty core changes. All of these have
    been in linux-next and the details are in the shortlog"

    * tag 'tty-4.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (127 commits)
    drivers/tty/serial: delete unused MODULE_DEVICE_TABLE from atmel_serial.c
    serial: sh-sci: Remove cpufreq notifier to fix crash/deadlock
    serial: 8250: of: Fix the driver and actually compile the 8250_of
    tty: amba-pl011: use iotype instead of access_32b to track 32-bit I/O
    tty: amba-pl011: fix earlycon register offsets
    serial: sh-sci: Drop the sci_fck clock fallback
    sh: sh7734: Correct SCIF type for BRG
    sh: Remove sci_ick clock alias
    sh: Rename sci_ick and sci_fck clock to fck
    serial: sh-sci: Add support for optional BRG on (H)SCIF
    serial: sh-sci: Add support for optional external (H)SCK input
    serial: sh-sci: Prepare for multiple sampling clock sources
    serial: sh-sci: Correct SCIF type on R-Car for BRG
    serial: sh-sci: Correct SCIF type on RZ/A1H
    serial: sh-sci: Replace struct sci_port_info by type/regtype encoding
    serial: sh-sci: Add BRG register definitions
    serial: sh-sci: Take into account sampling rate for max baud rate
    serial: sh-sci: Merge sci_scbrr_calc() and sci_baud_calc_hscif()
    serial: sh-sci: Avoid calculating the receive margin for HSCIF
    serial: sh-sci: Improve bit rate error calculation for HSCIF
    ...

    Linus Torvalds
     

09 Jan, 2016

1 commit

  • In commit c39dfebc7798956fd2140ae6321786ff35da30c3 ("drivers/tty/serial:
    make serial/atmel_serial.c explicitly non-modular") we removed the code
    relating to modular support since it currently only supports built in.

    However, when redoing my build coverage for mips allmodconfig, which
    sets CONFIG_OF, I noticed a remaining line that needs to be removed,
    else we will get a build failure for an undefined module macro.

    Unfortunately this didn't appear for any of the other arch I tested
    more frequently, such as ARM.

    Since MODULE_DEVICE_TABLE is a no-op for non-modular code, we can just
    remove the offending line.

    Fixes: c39dfebc7798 ("drivers/tty/serial: make serial/atmel_serial.c explicitly non-modular")
    Cc: Nicolas Ferre
    Cc: Jiri Slaby
    Reported-by: Sudip Mukherjee
    Signed-off-by: Paul Gortmaker
    Acked-by: Nicolas Ferre
    Acked-by: Sudip Mukherjee
    Signed-off-by: Greg Kroah-Hartman

    Paul Gortmaker
     

08 Jan, 2016

3 commits

  • The BSP team noticed that there is spin/mutex lock issue on sh-sci when
    CPUFREQ is used. The issue is that the notifier function may call
    mutex_lock() while the spinlock is held, which can lead to a BUG().
    This may happen if CPUFREQ is changed while another CPU calls
    clk_get_rate().

    Taking the spinlock was added to the notifier function in commit
    e552de2413edad1a ("sh-sci: add platform device private data"), to
    protect the list of serial ports against modification during traversal.
    At that time the Common Clock Framework didn't exist yet, and
    clk_get_rate() just returned clk->rate without taking a mutex.
    Note that since commit d535a2305facf9b4 ("serial: sh-sci: Require a
    device per port mapping."), there's no longer a list of serial ports to
    traverse, and taking the spinlock became superfluous.

    To fix the issue, just remove the cpufreq notifier:
    1. The notifier doesn't work correctly: all it does is update stored
    clock rates; it does not update the divider in the hardware.
    The divider will only be updated when calling sci_set_termios().
    I believe this was broken back in 2004, when the old
    drivers/char/sh-sci.c driver (where the notifier did update the
    divider) was replaced by drivers/serial/sh-sci.c (where the
    notifier just updated port->uartclk).
    Cfr. full-history-linux commits 6f8deaef2e9675d9 ("[PATCH] sh: port
    sh-sci driver to the new API") and 3f73fe878dc9210a ("[PATCH]
    Remove old sh-sci driver").
    2. On modern SoCs, the sh-sci parent clock rate is no longer related
    to the CPU clock rate anyway, so using a cpufreq notifier is
    futile.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • …ernel/git/geert/renesas-drivers into tty-next

    Geert writes:

    Summary:
    - Clean up the naming of clocks in the sh-sci driver and its DT bindings,
    - Add support for the optional external clock on (H)SCI(F), where this pin
    can serve as a clock input,
    - Add support for the optional clock sources for the Baud Rate
    Generator for External Clock (BRG), as found on some SCIF variants
    and on HSCIF.

    Greg Kroah-Hartman
     
  • The 8250_of never compiled since in the Kconfig we have SERIAL_OF_PLATFORM
    but in the makefile we expect to have SERIAL_8250_OF...

    When the 8250_of.c is actually compiled we will have two errors:
    missing linux/nwpserial.h and 8250/8250.h.
    Fix those as well at the same time when enable the compilation of the
    driver.

    Signed-off-by: Peter Ujfalusi
    Fixes: afd7f88f1577 ("serial: 8250: move of_serial code to 8250 directory")
    Reported-by: Guenter Roeck
    CC: Arnd Bergmann
    Acked-by: Arnd Bergmann
    Acked-by: Jon Hunter
    Tested-by: Jon Hunter
    Signed-off-by: Greg Kroah-Hartman

    Peter Ujfalusi
     

07 Jan, 2016

2 commits

  • Instead of defining a new field in the uart_amba_port structure, use the
    existing iotype field of the uart_port structure, which is intended for
    this purpose. If we need to use 32-bit register access, we set iotype
    to UPIO_MEM32, otherwise we set it to UPIO_MEM.

    For early console, specify the "mmio32" option on the kernel command-line.
    Example:

    earlycon=pl011,mmio32,0x3ced1000

    Signed-off-by: Timur Tabi
    Signed-off-by: Greg Kroah-Hartman

    Timur Tabi
     
  • The REG_x macros are indices into a table, not register offsets. Since earlycon
    does not have access to the vendor data, we can currently only support standard
    ARM PL011 devices.

    Signed-off-by: Russell King
    Tested-by: Huang Shijie
    Signed-off-by: Timur Tabi
    Signed-off-by: Greg Kroah-Hartman

    Russell King
     

06 Jan, 2016

1 commit

  • …k/linux-rcu into core/rcu

    Pull RCU changes from Paul E. McKenney:

    - Adding transitivity uniformly to rcu_node structure ->lock
    acquisitions. (This is implemented by the first two commits
    on top of v4.4-rc2 due to the pervasive nature of this change.)

    - Documentation updates, including RCU requirements.

    - Expedited grace-period changes.

    - Miscellaneous fixes.

    - Linked-list fixes, courtesy of KTSAN.

    - Torture-test updates.

    - Late-breaking fix to sysrq-generated crash.

    Signed-off-by: Ingo Molnar <mingo@kernel.org>

    Ingo Molnar
     

30 Dec, 2015

1 commit

  • Commit 984d74a72076a1 ("sysrq: rcu-ify __handle_sysrq") replaced
    spin_lock_irqsave() calls with rcu_read_lock() calls in sysrq. Since
    rcu_read_lock() does not disable preemption, faulthandler_disabled() in
    __do_page_fault() in x86/fault.c returns false. When the code later calls
    might_sleep() in the pagefault handler, we get the following warning:

    BUG: sleeping function called from invalid context at ../arch/x86/mm/fault.c:1187
    in_atomic(): 0, irqs_disabled(): 0, pid: 4706, name: bash
    Preemption disabled at:[] printk+0x48/0x4a

    To fix this, we release the RCU read lock before we crash.

    Tested this patch on linux 3.18 by booting off one of our boards.

    Fixes: 984d74a72076a1 ("sysrq: rcu-ify __handle_sysrq")

    Signed-off-by: Ani Sinha
    Reviewed-by: Rik van Riel
    Signed-off-by: Paul E. McKenney

    Ani Sinha
     

26 Dec, 2015

1 commit

  • Pull sparc fixes from David Miller:

    1) Finally make perf stack backtraces stable on sparc, several problems
    (mostly due to the context in which the user copies from the stack
    are done) contributed to this.

    From Rob Gardner.

    2) Export ADI capability if the cpu supports it.

    3) Hook up userfaultfd system call.

    4) When faults happen during user copies we really have to clean up and
    restore the FPU state fully. Also from Rob Gardner

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    tty/serial: Skip 'NULL' char after console break when sysrq enabled
    sparc64: fix FP corruption in user copy functions
    sparc64: Perf should save/restore fault info
    sparc64: Ensure perf can access user stacks
    sparc64: Don't set %pil in rtrap_nmi too early
    sparc64: Add ADI capability to cpu capabilities
    tty: serial: constify sunhv_ops structs
    sparc: Hook up userfaultfd system call

    Linus Torvalds
     

25 Dec, 2015

2 commits

  • When sysrq is triggered from console, serial driver for SUN hypervisor
    console receives a console break and enables the sysrq. It expects a valid
    sysrq char following with break. Meanwhile if driver receives 'NULL'
    ASCII char then it disables sysrq and sysrq handler will never be invoked.

    This fix skips calling uart sysrq handler when 'NULL' is received while
    sysrq is enabled.

    Signed-off-by: Vijay Kumar
    Acked-by: Karl Volz
    Signed-off-by: David S. Miller

    Vijay Kumar
     
  • Constifies sunhv_ops structures in tty's serial
    driver since they are not modified after their
    initialization.

    Detected and found using Coccinelle.

    Suggested-by: Julia Lawall
    Signed-off-by: Aya Mahfouz
    Signed-off-by: David S. Miller

    Aya Mahfouz
     

23 Dec, 2015

2 commits

  • ls1 has qe and ls1 has arm cpu.
    move qe from arch/powerpc to drivers/soc/fsl
    to adapt to powerpc and arm

    Signed-off-by: Zhao Qiang
    Signed-off-by: Scott Wood

    Zhao Qiang
     
  • …ross/linux into next/drivers

    Qualcomm ARM Based SoC Updates for 4.5

    * Add WCNSS_CTRL client
    * Various Kconfig changes to fix build issues
    * Update SoC Qualcomm MAINTAINERS entry
    * Add SMP2P, SMSM, and SMEM state machine drivers
    * Add SMD-RPM support for existing platforms

    * tag 'qcom-soc-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
    MAINTAINERS: Change QCOM entries
    soc: qcom: smd-rpm: Add existing platform support
    soc: qcom: Introduce WCNSS_CTRL SMD client
    ARM: qcom: select ARM_CPU_SUSPEND for power management
    MAINTAINERS: Add rules for Qualcomm dts files
    soc: qcom: enable smsm/smp2p modular build
    serial: msm_serial: Make config tristate
    soc: qcom: smp2p: Qualcomm Shared Memory Point to Point
    soc: qcom: smsm: Add driver for Qualcomm SMSM
    soc: qcom: Introduce common SMEM state machine code

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

22 Dec, 2015

1 commit


21 Dec, 2015

1 commit


17 Dec, 2015

5 commits

  • All platforms that used to define an sci_fck clock have now switched to
    the fck name. Remove the fallback code.

    Signed-off-by: Laurent Pinchart
    Acked-by: Simon Horman
    Signed-off-by: Geert Uytterhoeven
    Acked-by: Greg Kroah-Hartman

    Laurent Pinchart
     
  • Add support for using the Baud Rate Generator for External Clock (BRG), as
    found on some SCIF and HSCIF variants, to provide the sampling clock.
    This can improve baud rate range and accuracy.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • Add support for using the SCIx clock pin "(H)SCK" as an external clock
    input on (H)SCI(F), providing the sampling clock.

    Note that this feature is not yet supported on the select SCIFA variants
    that also have it (e.g. sh7723, sh7724, and r8a7740).

    On (H)SCIF variants with an External Baud Rate Generator (BRG), the
    BRG Clock Select Register must be configured for the external clock.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • Refactor the clock and baud rate parameter code to ease adding support
    for multiple sampling clock sources.
    sci_scbrr_calc() now returns the bit rate error, so it can be compared
    to the bit rate error using other sampling clock sources.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Greg Kroah-Hartman

    Geert Uytterhoeven
     
  • The "renesas,scif" compatible value is currently used for the SCIF
    variant in all Renesas SoCs of the R-Car family. However, the variant
    used in the R-Car family is not the common "SH-4(A)" variant, but a
    derivative with added "Baud Rate Generator for External Clock" (BRG),
    which is also present in sh7734.

    Use the family-specific SCIF compatible values for R-Car Gen1, Gen2, and
    Gen3 SoCs to differentiate. The "renesas,scif" compatible value can
    still be used as a common denominator for SCIF variants with the
    "SH-4(A)" register layout (i.e. ignoring the "Serial Extension Mode
    Register" (SCEMR) and the new BRG-specific registers).

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Greg Kroah-Hartman

    Geert Uytterhoeven