1. 27 12月, 2019 3 次提交
    • A
      serial: set suppress_bind_attrs flag only if builtin · a4398baf
      Anders Roxell 提交于
      [ Upstream commit 646097940ad35aa2c1f2012af932d55976a9f255 ]
      
      When the test 'CONFIG_DEBUG_TEST_DRIVER_REMOVE=y' is enabled,
      arch_initcall(pl011_init) came before subsys_initcall(default_bdi_init).
      devtmpfs gets killed because we try to remove a file and decrement the
      wb reference count before the noop_backing_device_info gets initialized.
      
      [    0.332075] Serial: AMBA PL011 UART driver
      [    0.485276] 9000000.pl011: ttyAMA0 at MMIO 0x9000000 (irq = 39, base_baud = 0) is a PL011 rev1
      [    0.502382] console [ttyAMA0] enabled
      [    0.515710] Unable to handle kernel paging request at virtual address 0000800074c12000
      [    0.516053] Mem abort info:
      [    0.516222]   ESR = 0x96000004
      [    0.516417]   Exception class = DABT (current EL), IL = 32 bits
      [    0.516641]   SET = 0, FnV = 0
      [    0.516826]   EA = 0, S1PTW = 0
      [    0.516984] Data abort info:
      [    0.517149]   ISV = 0, ISS = 0x00000004
      [    0.517339]   CM = 0, WnR = 0
      [    0.517553] [0000800074c12000] user address but active_mm is swapper
      [    0.517928] Internal error: Oops: 96000004 [#1] PREEMPT SMP
      [    0.518305] Modules linked in:
      [    0.518839] CPU: 0 PID: 13 Comm: kdevtmpfs Not tainted 4.19.0-rc5-next-20180928-00002-g2ba39ab0cd01-dirty #82
      [    0.519307] Hardware name: linux,dummy-virt (DT)
      [    0.519681] pstate: 80000005 (Nzcv daif -PAN -UAO)
      [    0.519959] pc : __destroy_inode+0x94/0x2a8
      [    0.520212] lr : __destroy_inode+0x78/0x2a8
      [    0.520401] sp : ffff0000098c3b20
      [    0.520590] x29: ffff0000098c3b20 x28: 00000000087a3714
      [    0.520904] x27: 0000000000002000 x26: 0000000000002000
      [    0.521179] x25: ffff000009583000 x24: 0000000000000000
      [    0.521467] x23: ffff80007bb52000 x22: ffff80007bbaa7c0
      [    0.521737] x21: ffff0000093f9338 x20: 0000000000000000
      [    0.522033] x19: ffff80007bbb05d8 x18: 0000000000000400
      [    0.522376] x17: 0000000000000000 x16: 0000000000000000
      [    0.522727] x15: 0000000000000400 x14: 0000000000000400
      [    0.523068] x13: 0000000000000001 x12: 0000000000000001
      [    0.523421] x11: 0000000000000000 x10: 0000000000000970
      [    0.523749] x9 : ffff0000098c3a60 x8 : ffff80007bbab190
      [    0.524017] x7 : ffff80007bbaa880 x6 : 0000000000000c88
      [    0.524305] x5 : ffff0000093d96c8 x4 : 61c8864680b583eb
      [    0.524567] x3 : ffff0000093d6180 x2 : ffffffffffffffff
      [    0.524872] x1 : 0000800074c12000 x0 : 0000800074c12000
      [    0.525207] Process kdevtmpfs (pid: 13, stack limit = 0x(____ptrval____))
      [    0.525529] Call trace:
      [    0.525806]  __destroy_inode+0x94/0x2a8
      [    0.526108]  destroy_inode+0x34/0x88
      [    0.526370]  evict+0x144/0x1c8
      [    0.526636]  iput+0x184/0x230
      [    0.526871]  dentry_unlink_inode+0x118/0x130
      [    0.527152]  d_delete+0xd8/0xe0
      [    0.527420]  vfs_unlink+0x240/0x270
      [    0.527665]  handle_remove+0x1d8/0x330
      [    0.527875]  devtmpfsd+0x138/0x1c8
      [    0.528085]  kthread+0x14c/0x158
      [    0.528291]  ret_from_fork+0x10/0x18
      [    0.528720] Code: 92800002 aa1403e0 d538d081 8b010000 (c85f7c04)
      [    0.529367] ---[ end trace 5a3dee47727f877c ]---
      
      Rework to set suppress_bind_attrs flag to avoid removing the device when
      CONFIG_DEBUG_TEST_DRIVER_REMOVE=y. This applies for pic32_uart and
      xilinx_uartps as well.
      Co-developed-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NAnders Roxell <anders.roxell@linaro.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NSasha Levin <sashal@kernel.org>
      Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
      a4398baf
    • Y
      serial/sunsu: fix refcount leak · 51c1e474
      Yangtao Li 提交于
      [ Upstream commit d430aff8cd0c57502d873909c184e3b5753f8b88 ]
      
      The function of_find_node_by_path() acquires a reference to the node
      returned by it and that reference needs to be dropped by its caller.
      
      su_get_type() doesn't do that. The match node are used as an identifier
      to compare against the current node, so we can directly drop the refcount
      after getting the node from the path as it is not used as pointer.
      
      Fix this by use a single variable and drop the refcount right after
      of_find_node_by_path().
      Signed-off-by: NYangtao Li <tiny.windzz@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: NSasha Levin <sashal@kernel.org>
      Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
      51c1e474
    • N
      serial: uartps: Fix interrupt mask issue to handle the RX interrupts properly · 3a45d561
      Nava kishore Manne 提交于
      commit 260683137ab5276113fc322fdbbc578024185fee upstream.
      
      This patch Correct the RX interrupt mask value to handle the
      RX interrupts properly.
      
      Fixes: c8dbdc84 ("serial: xuartps: Rewrite the interrupt handling logic")
      Signed-off-by: NNava kishore Manne <nava.manne@xilinx.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NMichal Simek <michal.simek@xilinx.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
      3a45d561
  2. 21 12月, 2018 1 次提交
  3. 13 12月, 2018 2 次提交
    • M
      kgdboc: fix KASAN global-out-of-bounds bug in param_set_kgdboc_var() · beb68a72
      Macpaul Lin 提交于
      commit dada6a43b0402eba438a17ac86fdc64ac56a4607 upstream.
      
      This patch is trying to fix KE issue due to
      "BUG: KASAN: global-out-of-bounds in param_set_kgdboc_var+0x194/0x198"
      reported by Syzkaller scan."
      
      [26364:syz-executor0][name:report8t]BUG: KASAN: global-out-of-bounds in param_set_kgdboc_var+0x194/0x198
      [26364:syz-executor0][name:report&]Read of size 1 at addr ffffff900e44f95f by task syz-executor0/26364
      [26364:syz-executor0][name:report&]
      [26364:syz-executor0]CPU: 7 PID: 26364 Comm: syz-executor0 Tainted: G W 0
      [26364:syz-executor0]Call trace:
      [26364:syz-executor0][<ffffff9008095cf8>] dump_bacIctrace+Ox0/0x470
      [26364:syz-executor0][<ffffff9008096de0>] show_stack+0x20/0x30
      [26364:syz-executor0][<ffffff90089cc9c8>] dump_stack+Oxd8/0x128
      [26364:syz-executor0][<ffffff90084edb38>] print_address_description +0x80/0x4a8
      [26364:syz-executor0][<ffffff90084ee270>] kasan_report+Ox178/0x390
      [26364:syz-executor0][<ffffff90084ee4a0>] _asan_report_loadi_noabort+Ox18/0x20
      [26364:syz-executor0][<ffffff9008b092ac>] param_set_kgdboc_var+Ox194/0x198
      [26364:syz-executor0][<ffffff900813af64>] param_attr_store+Ox14c/0x270
      [26364:syz-executor0][<ffffff90081394c8>] module_attr_store+0x60/0x90
      [26364:syz-executor0][<ffffff90086690c0>] sysfs_kl_write+Ox100/0x158
      [26364:syz-executor0][<ffffff9008666d84>] kernfs_fop_write+0x27c/0x3a8
      [26364:syz-executor0][<ffffff9008508264>] do_loop_readv_writev+0x114/0x1b0
      [26364:syz-executor0][<ffffff9008509ac8>] do_readv_writev+0x4f8/0x5e0
      [26364:syz-executor0][<ffffff9008509ce4>] vfs_writev+0x7c/Oxb8
      [26364:syz-executor0][<ffffff900850ba64>] SyS_writev+Oxcc/0x208
      [26364:syz-executor0][<ffffff90080883f0>] elO_svc_naked +0x24/0x28
      [26364:syz-executor0][name:report&]
      [26364:syz-executor0][name:report&]The buggy address belongs to the variable:
      [26364:syz-executor0][name:report&] kgdb_tty_line+Ox3f/0x40
      [26364:syz-executor0][name:report&]
      [26364:syz-executor0][name:report&]Memory state around the buggy address:
      [26364:syz-executor0] ffffff900e44f800: 00 00 00 00 00 04 fa fa fa fa fa fa 00 fa fa fa
      [26364:syz-executor0] ffffff900e44f880: fa fa fa fa 00 fa fa fa fa fa fa fa 00 fa fa fa
      [26364:syz-executor0]> ffffff900e44f900: fa fa fa fa 04 fa fa fa fa fa fa fa 00 00 00 00
      [26364:syz-executor0][name:report&]                                       ^
      [26364:syz-executor0] ffffff900e44f980: 00 fa fa fa fa fa fa fa 04 fa fa fa fa fa fa fa
      [26364:syz-executor0] ffffff900e44fa00: 04 fa fa fa fa fa fa fa 00 fa fa fa fa fa fa fa
      [26364:syz-executor0][name:report&]
      [26364:syz-executor0][name:panic&]Disabling lock debugging due to kernel taint
      [26364:syz-executor0]------------[cut here]------------
      
      After checking the source code, we've found there might be an out-of-bounds
      access to "config[len - 1]" array when the variable "len" is zero.
      Signed-off-by: NMacpaul Lin <macpaul@gmail.com>
      Acked-by: NDaniel Thompson <daniel.thompson@linaro.org>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      beb68a72
    • P
      tty: serial: 8250_mtk: always resume the device in probe. · ecbfb178
      Peter Shih 提交于
      commit 100bc3e2bebf95506da57cbdf5f26b25f6da4c81 upstream.
      
      serial8250_register_8250_port calls uart_config_port, which calls
      config_port on the port before it tries to power on the port. So we need
      the port to be on before calling serial8250_register_8250_port. Change
      the code to always do a runtime resume in probe before registering port,
      and always do a runtime suspend in remove.
      
      This basically reverts the change in commit 68e5fc4a ("tty: serial:
      8250_mtk: use pm_runtime callbacks for enabling"), but still use
      pm_runtime callbacks.
      
      Fixes: 68e5fc4a ("tty: serial: 8250_mtk: use pm_runtime callbacks for enabling")
      Signed-off-by: NPeter Shih <pihsun@chromium.org>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ecbfb178
  4. 08 12月, 2018 2 次提交
  5. 27 11月, 2018 1 次提交
  6. 21 11月, 2018 3 次提交
    • Y
      serial: sh-sci: Fix could not remove dev_attr_rx_fifo_timeout · d168af20
      Yoshihiro Shimoda 提交于
      commit 641a41dbba217ee5bd26abe6be77f8cead9cd00e upstream.
      
      This patch fixes an issue that the sci_remove() could not remove
      dev_attr_rx_fifo_timeout because uart_remove_one_port() set
      the port->port.type to PORT_UNKNOWN.
      Reported-by: NHiromitsu Yamasaki <hiromitsu.yamasaki.ym@renesas.com>
      Fixes: 5d23188a ("serial: sh-sci: make RX FIFO parameters tunable via sysfs")
      Cc: <stable@vger.kernel.org> # v4.11+
      Signed-off-by: NYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
      Reviewed-by: NUlrich Hecht <uli+renesas@fpond.eu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      d168af20
    • P
      sc16is7xx: Fix for multi-channel stall · c50363de
      Phil Elwell 提交于
      [ Upstream commit 8344498721059754e09d30fe255a12dab8fb03ef ]
      
      The SC16IS752 is a dual-channel device. The two channels are largely
      independent, but the IRQ signals are wired together as an open-drain,
      active low signal which will be driven low while either of the
      channels requires attention, which can be for significant periods of
      time until operations complete and the interrupt can be acknowledged.
      In that respect it is should be treated as a true level-sensitive IRQ.
      
      The kernel, however, needs to be able to exit interrupt context in
      order to use I2C or SPI to access the device registers (which may
      involve sleeping).  Therefore the interrupt needs to be masked out or
      paused in some way.
      
      The usual way to manage sleeping from within an interrupt handler
      is to use a threaded interrupt handler - a regular interrupt routine
      does the minimum amount of work needed to triage the interrupt before
      waking the interrupt service thread. If the threaded IRQ is marked as
      IRQF_ONESHOT the kernel will automatically mask out the interrupt
      until the thread runs to completion. The sc16is7xx driver used to
      use a threaded IRQ, but a patch switched to using a kthread_worker
      in order to set realtime priorities on the handler thread and for
      other optimisations. The end result is non-threaded IRQ that
      schedules some work then returns IRQ_HANDLED, making the kernel
      think that all IRQ processing has completed.
      
      The work-around to prevent a constant stream of interrupts is to
      mark the interrupt as edge-sensitive rather than level-sensitive,
      but interpreting an active-low source as a falling-edge source
      requires care to prevent a total cessation of interrupts. Whereas
      an edge-triggering source will generate a new edge for every interrupt
      condition a level-triggering source will keep the signal at the
      interrupting level until it no longer requires attention; in other
      words, the host won't see another edge until all interrupt conditions
      are cleared. It is therefore vital that the interrupt handler does not
      exit with an outstanding interrupt condition, otherwise the kernel
      will not receive another interrupt unless some other operation causes
      the interrupt state on the device to be cleared.
      
      The existing sc16is7xx driver has a very simple interrupt "thread"
      (kthread_work job) that processes interrupts on each channel in turn
      until there are no more. If both channels are active and the first
      channel starts interrupting while the handler for the second channel
      is running then it will not be detected and an IRQ stall ensues. This
      could be handled easily if there was a shared IRQ status register, or
      a convenient way to determine if the IRQ had been deasserted for any
      length of time, but both appear to be lacking.
      
      Avoid this problem (or at least make it much less likely to happen)
      by reducing the granularity of per-channel interrupt processing
      to one condition per iteration, only exiting the overall loop when
      both channels are no longer interrupting.
      Signed-off-by: NPhil Elwell <phil@raspberrypi.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NSasha Levin <sashal@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c50363de
    • J
      serial: 8250_of: Fix for lack of interrupt support · ff8bf852
      John Garry 提交于
      [ Upstream commit a27d938251ef40c43db81af16fc26b2cec181d4d ]
      
      In commit c58caaab ("serial: 8250: of: Defer probe on missing IRQ"), a
      check was added for the UART driver being probed prior to the parent IRQ
      controller.
      
      Unfortunately this breaks certain boards which have no interrupt support,
      like Huawei D03.
      
      Indeed, the 8250 DT bindings state that interrupts should be supported -
      not must.
      
      To fix, switch from irq_of_parse_and_map() to of_irq_get(), which
      does relay whether the IRQ host controller domain is not ready, i.e.
      defer probe, instead of assuming it.
      
      Fixes: c58caaab ("serial: 8250: of: Defer probe on missing IRQ")
      Signed-off-by: NJohn Garry <john.garry@huawei.com>
      Reviewed-by: NRob Herring <robh@kernel.org>
      Reviewed-by: NAlexander Sverdlin <alexander.sverdlin@nokia.com>
      Tested-by: NAlexander Sverdlin <alexander.sverdlin@nokia.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NSasha Levin <sashal@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ff8bf852
  7. 14 11月, 2018 1 次提交
    • H
      kgdboc: Passing ekgdboc to command line causes panic · df7ada33
      He Zhe 提交于
      commit 1bd54d851f50dea6af30c3e6ff4f3e9aab5558f9 upstream.
      
      kgdboc_option_setup does not check input argument before passing it
      to strlen. The argument would be a NULL pointer if "ekgdboc", without
      its value, is set in command line and thus cause the following panic.
      
      PANIC: early exception 0xe3 IP 10:ffffffff8fbbb620 error 0 cr2 0x0
      [    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 4.18-rc8+ #1
      [    0.000000] RIP: 0010:strlen+0x0/0x20
      ...
      [    0.000000] Call Trace
      [    0.000000]  ? kgdboc_option_setup+0x9/0xa0
      [    0.000000]  ? kgdboc_early_init+0x6/0x1b
      [    0.000000]  ? do_early_param+0x4d/0x82
      [    0.000000]  ? parse_args+0x212/0x330
      [    0.000000]  ? rdinit_setup+0x26/0x26
      [    0.000000]  ? parse_early_options+0x20/0x23
      [    0.000000]  ? rdinit_setup+0x26/0x26
      [    0.000000]  ? parse_early_param+0x2d/0x39
      [    0.000000]  ? setup_arch+0x2f7/0xbf4
      [    0.000000]  ? start_kernel+0x5e/0x4c2
      [    0.000000]  ? load_ucode_bsp+0x113/0x12f
      [    0.000000]  ? secondary_startup_64+0xa5/0xb0
      
      This patch adds a check to prevent the panic.
      
      Cc: stable@vger.kernel.org
      Cc: jason.wessel@windriver.com
      Cc: gregkh@linuxfoundation.org
      Cc: jslaby@suse.com
      Signed-off-by: NHe Zhe <zhe.he@windriver.com>
      Reviewed-by: NDaniel Thompson <daniel.thompson@linaro.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      df7ada33
  8. 06 10月, 2018 1 次提交
    • K
      treewide: Replace more open-coded allocation size multiplications · 329e0989
      Kees Cook 提交于
      As done treewide earlier, this catches several more open-coded
      allocation size calculations that were added to the kernel during the
      merge window. This performs the following mechanical transformations
      using Coccinelle:
      
      	kvmalloc(a * b, ...) -> kvmalloc_array(a, b, ...)
      	kvzalloc(a * b, ...) -> kvcalloc(a, b, ...)
      	devm_kzalloc(..., a * b, ...) -> devm_kcalloc(..., a, b, ...)
      Signed-off-by: NKees Cook <keescook@chromium.org>
      329e0989
  9. 03 10月, 2018 3 次提交
    • G
      Revert "serial: sh-sci: Allow for compressed SCIF address" · 5b162cc4
      Geert Uytterhoeven 提交于
      This reverts commit 2d4dd0da.
      
      This broke earlycon on all Renesas ARM platforms using a SCIF port for the
      serial console (R-Car, RZ/A1, RZ/G1, RZ/G2 SoCs), due to an incorrect value
      of port->regshift.
      Signed-off-by: NGeert Uytterhoeven <geert+renesas@glider.be>
      Acked-by: NChris Brandt <chris.brandt@renesas.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5b162cc4
    • G
    • G
      Revert "serial: 8250_dw: Fix runtime PM handling" · beeeac43
      Guenter Roeck 提交于
      This reverts commit d76c7438.
      
      While commit d76c7438 ("serial: 8250_dw: Fix runtime PM handling")
      fixes runtime PM handling when using kgdb, it introduces a traceback for
      everyone else.
      
      BUG: sleeping function called from invalid context at
      	/mnt/host/source/src/third_party/kernel/next/drivers/base/power/runtime.c:1034
      in_atomic(): 1, irqs_disabled(): 1, pid: 1, name: swapper/0
      7 locks held by swapper/0/1:
       #0: 000000005ec5bc72 (&dev->mutex){....}, at: __driver_attach+0xb5/0x12b
       #1: 000000005d5fa9e5 (&dev->mutex){....}, at: __device_attach+0x3e/0x15b
       #2: 0000000047e93286 (serial_mutex){+.+.}, at: serial8250_register_8250_port+0x51/0x8bb
       #3: 000000003b328f07 (port_mutex){+.+.}, at: uart_add_one_port+0xab/0x8b0
       #4: 00000000fa313d4d (&port->mutex){+.+.}, at: uart_add_one_port+0xcc/0x8b0
       #5: 00000000090983ca (console_lock){+.+.}, at: vprintk_emit+0xdb/0x217
       #6: 00000000c743e583 (console_owner){-...}, at: console_unlock+0x211/0x60f
      irq event stamp: 735222
      __down_trylock_console_sem+0x4a/0x84
      console_unlock+0x338/0x60f
      __do_softirq+0x4a4/0x50d
      irq_exit+0x64/0xe2
      CPU: 2 PID: 1 Comm: swapper/0 Not tainted 4.19.0-rc5 #6
      Hardware name: Google Caroline/Caroline, BIOS Google_Caroline.7820.286.0 03/15/2017
      Call Trace:
       dump_stack+0x7d/0xbd
       ___might_sleep+0x238/0x259
       __pm_runtime_resume+0x4e/0xa4
       ? serial8250_rpm_get+0x2e/0x44
       serial8250_console_write+0x44/0x301
       ? lock_acquire+0x1b8/0x1fa
       console_unlock+0x577/0x60f
       vprintk_emit+0x1f0/0x217
       printk+0x52/0x6e
       register_console+0x43b/0x524
       uart_add_one_port+0x672/0x8b0
       ? set_io_from_upio+0x150/0x162
       serial8250_register_8250_port+0x825/0x8bb
       dw8250_probe+0x80c/0x8b0
       ? dw8250_serial_inq+0x8e/0x8e
       ? dw8250_check_lcr+0x108/0x108
       ? dw8250_runtime_resume+0x5b/0x5b
       ? dw8250_serial_outq+0xa1/0xa1
       ? dw8250_remove+0x115/0x115
       platform_drv_probe+0x76/0xc5
       really_probe+0x1f1/0x3ee
       ? driver_allows_async_probing+0x5d/0x5d
       driver_probe_device+0xd6/0x112
       ? driver_allows_async_probing+0x5d/0x5d
       bus_for_each_drv+0xbe/0xe5
       __device_attach+0xdd/0x15b
       bus_probe_device+0x5a/0x10b
       device_add+0x501/0x894
       ? _raw_write_unlock+0x27/0x3a
       platform_device_add+0x224/0x2b7
       mfd_add_device+0x718/0x75b
       ? __kmalloc+0x144/0x16a
       ? mfd_add_devices+0x38/0xdb
       mfd_add_devices+0x9b/0xdb
       intel_lpss_probe+0x7d4/0x8ee
       intel_lpss_pci_probe+0xac/0xd4
       pci_device_probe+0x101/0x18e
      ...
      
      Revert the offending patch until a more comprehensive solution
      is available.
      
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Cc: Phil Edworthy <phil.edworthy@renesas.com>
      Fixes: d76c7438 ("serial: 8250_dw: Fix runtime PM handling")
      Signed-off-by: NGuenter Roeck <linux@roeck-us.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      beeeac43
  10. 20 9月, 2018 1 次提交
  11. 18 9月, 2018 3 次提交
  12. 13 8月, 2018 1 次提交
    • M
      tty: serial: 8250: Revert NXP SC16C2552 workaround · 47ac7666
      Mark 提交于
      Revert commit ecb988a3: tty: serial:
      8250: 8250_core: NXP SC16C2552 workaround
      
      The above commit causes userland application to no longer write
      correctly its first write to a dumb terminal connected to /dev/ttyS0.
      This commit seems to be the culprit. It's as though the TX FIFO is being
      reset during that write. What should be displayed is:
      
      PSW 80000000 INST 00000000                           HALT
      //
      
      What is displayed is some variation of:
      
      T 00000000           HAL//
      
      Reverting this commit via this patch fixes my problem.
      Signed-off-by: NMark Hounschell <dmarkh@cfl.rr.com>
      Fixes: ecb988a3 ("tty: serial: 8250: 8250_core: NXP SC16C2552 workaround")
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      47ac7666
  13. 02 8月, 2018 9 次提交
  14. 25 7月, 2018 1 次提交
  15. 23 7月, 2018 1 次提交
  16. 21 7月, 2018 5 次提交
  17. 16 7月, 2018 2 次提交