1. 03 2月, 2015 2 次提交
  2. 10 1月, 2015 9 次提交
  3. 19 12月, 2014 1 次提交
  4. 13 12月, 2014 1 次提交
  5. 26 11月, 2014 4 次提交
    • R
      serial: 8250: don't attempt a trylock if in sysrq · 6fad18fa
      Rabin Vincent 提交于
      Attempting to use SysRq via the 8250 serial port with spin lock
      debugging on on a uniprocessor system results in the following splat:
      
       SysRq :
       BUG: spinlock trylock failure on UP on CPU#0, swapper/0
        lock: serial8250_ports+0x0/0x8c0, .magic: dead4ead, .owner: swapper/0, .owner_cpu: 0
       CPU: 0 PID: 0 Comm: swapper Not tainted 3.18.0-rc4+ #37
       Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
        ffffffff8245ba00 ffffffff81628b28 ffffffff812c8d27 ffffffff81628b48
        ffffffff8106812e ffffffff8245ba00 ffffffff814e22ed ffffffff81628b68
        ffffffff810681a6 0000000000000000 0000000000000000 ffffffff81628b88
       Call Trace:
        <IRQ>  [<ffffffff812c8d27>] dump_stack+0x19/0x1b
        [<ffffffff8106812e>] spin_dump+0x7e/0xd0
        [<ffffffff810681a6>] spin_bug+0x26/0x30
        [<ffffffff8106843c>] do_raw_spin_trylock+0x4c/0x60
        [<ffffffff812cdb1d>] _raw_spin_trylock+0x1d/0x60
        [<ffffffff812336d8>] serial8250_console_write+0x68/0x190
        [<ffffffff811eb0b0>] ? sprintf+0x40/0x50
        [<ffffffff8106ab5e>] call_console_drivers.constprop.11+0x9e/0xf0
        [<ffffffff8106b276>] console_unlock+0x3e6/0x490
        [<ffffffff8106b595>] vprintk_emit+0x275/0x530
        [<ffffffff812c869a>] printk+0x4d/0x4f
        [<ffffffff8121e612>] __handle_sysrq+0x62/0x1b0
        [<ffffffff8121e5b5>] ? __handle_sysrq+0x5/0x1b0
        [<ffffffff8121ebc6>] handle_sysrq+0x26/0x30
        [<ffffffff81233157>] serial8250_rx_chars+0x1d7/0x250
        [<ffffffff812338bb>] serial8250_handle_irq+0x7b/0x90
        [<ffffffff812338f3>] serial8250_default_handle_irq+0x23/0x30
        [<ffffffff812318b3>] serial8250_interrupt+0x63/0xe0
        [<ffffffff8106d80e>] handle_irq_event_percpu+0x4e/0x200
        [<ffffffff8106da01>] handle_irq_event+0x41/0x70
        [<ffffffff810701ee>] ? handle_edge_irq+0x1e/0x110
        [<ffffffff8107026e>] handle_edge_irq+0x9e/0x110
        [<ffffffff810041c2>] handle_irq+0x22/0x40
        [<ffffffff812d096e>] do_IRQ+0x4e/0xf0
        [<ffffffff812cf4ed>] common_interrupt+0x6d/0x6d
        <EOI>  [<ffffffff8100acbf>] ? default_idle+0x1f/0xd0
        [<ffffffff8100acbd>] ? default_idle+0x1d/0xd0
        [<ffffffff8100b61f>] arch_cpu_idle+0xf/0x20
        [<ffffffff8105c1db>] cpu_startup_entry+0x25b/0x360
        [<ffffffff812c726e>] rest_init+0xbe/0xd0
        [<ffffffff816a4dcb>] start_kernel+0x339/0x346
        [<ffffffff816a4495>] x86_64_start_reservations+0x2a/0x2c
        [<ffffffff816a4589>] x86_64_start_kernel+0xf2/0xf6
       HELP : loglevel(0-9) reboot(b) crash(c) show-all-locks(d) te...
      
      Before ebade5e8 ("serial: 8250: Clean up the locking for -rt")
      this was handled by not even attempting to try the lock if port->sysrq,
      since it is known to be taken by the interrupt handler; see
      https://bugzilla.kernel.org/show_bug.cgi?id=6716#c1.  Restore that
      behavior.
      Signed-off-by: NRabin Vincent <rabin@rab.in>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      6fad18fa
    • P
      serial: Fix io address assign flow with Fintek PCI-to-UART Product · cb8ee9f0
      Peter Hung 提交于
      The original driver fixed the io address with 0xe000+idx*8,
      but real io address assigned from BIOS is dynamically from
      read PCI configure space 0x24, 0x20, 0x1c.
      
      The Fintek F81504/F81508/F81512 maybe malfunction without
      this patch and malfunction surely when more then 1 PCI card.
      Signed-off-by: NPeter Hung <hpeter+linux_kernel@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      cb8ee9f0
    • D
      serial: 8250_dw: Use 64-bit access for OCTEON. · bca2092d
      David Daney 提交于
      Although the existing code appears to work on most hardware, the
      hardware designers tell us that 8-bit access to the registers is not
      guaranteed to be reliable.  Also the OCTEON simulation environments
      prohibit 8-bit accesses.
      
      For these reasons, we use __raw_readq/__raw_writeq for OCTEON.  This
      code is protected with #ifdef CONFIG_64BIT so it still builds under
      configurations lacking readq/writeq.
      
      We can get rid of the #ifdef __BIG_ENDIAN, as under 64-bit accesses,
      OCTEON is byte order invariant.
      Signed-off-by: NDavid Daney <david.daney@cavium.com>
      Signed-off-by: NAleksey Makarov <aleksey.makarov@auriga.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      bca2092d
    • S
      tty: serial: 8250: omap: line is unsigned, don't check < 0 · 54178fe6
      Sebastian Andrzej Siewior 提交于
      Dan Carpenter reported:
      |drivers/tty/serial/8250/8250_omap.c:1025 omap8250_probe()
      |warn: unsigned 'up.port.line' is never less than zero.
      |1025          if (up.port.line < 0) {
      
      I (wrongly) assumed that line is an int and compiler didn't complain nor
      did sparse. Since of_alias_get_id() and pdev->id can get negative I
      check for the error via ret variable.
      Reported-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      54178fe6
  6. 07 11月, 2014 17 次提交
  7. 06 11月, 2014 6 次提交