Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ae8c75c1 authored by Matthew Wilcox's avatar Matthew Wilcox Committed by Kyle McMartin
Browse files

[PARISC] Fix mux.c driver



Missing spin_lock_init() made the Mux driver hang on SMP systems.

Fix up users of ->hpa to use ->hpa.start instead

Remove warning in 8250_gsc.c by eliminating serial_line_nr

Signed-off-by: default avatarMatthew Wilcox <willy@parisc-linux.org>

Signed-off-by: default avatarKyle McMartin <kyle@parisc-linux.org>
parent 27ee073c
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@
static int __init 
serial_init_chip(struct parisc_device *dev)
{
	static int serial_line_nr;
	struct uart_port port;
	unsigned long address;
	int err;
+5 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include <linux/delay.h> /* for udelay */
#include <linux/device.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/parisc-device.h>

#ifdef CONFIG_MAGIC_SYSRQ
@@ -469,16 +470,18 @@ static int __init mux_probe(struct parisc_device *dev)
	for(i = 0; i < ports; ++i, ++port_cnt) {
		port = &mux_ports[port_cnt];
		port->iobase	= 0;
		port->mapbase	= dev->hpa + MUX_OFFSET + (i * MUX_LINE_OFFSET);
		port->mapbase	= dev->hpa.start + MUX_OFFSET +
						(i * MUX_LINE_OFFSET);
		port->membase	= ioremap(port->mapbase, MUX_LINE_OFFSET);
		port->iotype	= SERIAL_IO_MEM;
		port->type	= PORT_MUX;
		port->irq	= SERIAL_IRQ_NONE;
		port->irq	= NO_IRQ;
		port->uartclk	= 0;
		port->fifosize	= MUX_FIFO_SIZE;
		port->ops	= &mux_pops;
		port->flags	= UPF_BOOT_AUTOCONF;
		port->line	= port_cnt;
		spin_lock_init(&port->lock);
		status = uart_add_one_port(&mux_driver, port);
		BUG_ON(status);
	}