Merge tag 'tty-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty
Pull TTY/Serial merge from Greg Kroah-Hartman: "Here's the big tty/serial tree set of changes for 3.8-rc1. Contained in here is a bunch more reworks of the tty port layer from Jiri and bugfixes from Alan, along with a number of other tty and serial driver updates by the various driver authors. Also, Jiri has been coerced^Wconvinced to be the co-maintainer of the TTY layer, which is much appreciated by me. All of these have been in the linux-next tree for a while. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>" Fixed up some trivial conflicts in the staging tree, due to the fwserial driver having come in both ways (but fixed up a bit in the serial tree), and the ioctl handling in the dgrp driver having been done slightly differently (staging tree got that one right, and removed both TIOCGSOFTCAR and TIOCSSOFTCAR). * tag 'tty-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (146 commits) staging: sb105x: fix potential NULL pointer dereference in mp_chars_in_buffer() staging/fwserial: Remove superfluous free staging/fwserial: Use WARN_ONCE when port table is corrupted staging/fwserial: Destruct embedded tty_port on teardown staging/fwserial: Fix build breakage when !CONFIG_BUG staging: fwserial: Add TTY-over-Firewire serial driver drivers/tty/serial/serial_core.c: clean up HIGH_BITS_OFFSET usage staging: dgrp: dgrp_tty.c: Audit the return values of get/put_user() staging: dgrp: dgrp_tty.c: Remove the TIOCSSOFTCAR ioctl handler from dgrp driver serial: ifx6x60: Add modem power off function in the platform reboot process serial: mxs-auart: unmap the scatter list before we copy the data serial: mxs-auart: disable the Receive Timeout Interrupt when DMA is enabled serial: max310x: Setup missing "can_sleep" field for GPIO tty/serial: fix ifx6x60.c declaration warning serial: samsung: add devicetree properties for non-Exynos SoCs serial: samsung: fix potential soft lockup during uart write tty: vt: Remove redundant null check before kfree. tty/8250 Add check for pci_ioremap_bar failure tty/8250 Add support for Commtech's Fastcom Async-335 and Fastcom Async-PCIe cards tty/8250 Add XR17D15x devices to the exar_handle_irq override ...
This commit is contained in:
@@ -66,8 +66,6 @@ struct uart_icount {
|
||||
|
||||
struct sdio_uart_port {
|
||||
struct tty_port port;
|
||||
struct kref kref;
|
||||
struct tty_struct *tty;
|
||||
unsigned int index;
|
||||
struct sdio_func *func;
|
||||
struct mutex func_lock;
|
||||
@@ -93,7 +91,6 @@ static int sdio_uart_add_port(struct sdio_uart_port *port)
|
||||
{
|
||||
int index, ret = -EBUSY;
|
||||
|
||||
kref_init(&port->kref);
|
||||
mutex_init(&port->func_lock);
|
||||
spin_lock_init(&port->write_lock);
|
||||
if (kfifo_alloc(&port->xmit_fifo, FIFO_SIZE, GFP_KERNEL))
|
||||
@@ -123,23 +120,15 @@ static struct sdio_uart_port *sdio_uart_port_get(unsigned index)
|
||||
spin_lock(&sdio_uart_table_lock);
|
||||
port = sdio_uart_table[index];
|
||||
if (port)
|
||||
kref_get(&port->kref);
|
||||
tty_port_get(&port->port);
|
||||
spin_unlock(&sdio_uart_table_lock);
|
||||
|
||||
return port;
|
||||
}
|
||||
|
||||
static void sdio_uart_port_destroy(struct kref *kref)
|
||||
{
|
||||
struct sdio_uart_port *port =
|
||||
container_of(kref, struct sdio_uart_port, kref);
|
||||
kfifo_free(&port->xmit_fifo);
|
||||
kfree(port);
|
||||
}
|
||||
|
||||
static void sdio_uart_port_put(struct sdio_uart_port *port)
|
||||
{
|
||||
kref_put(&port->kref, sdio_uart_port_destroy);
|
||||
tty_port_put(&port->port);
|
||||
}
|
||||
|
||||
static void sdio_uart_port_remove(struct sdio_uart_port *port)
|
||||
@@ -737,6 +726,14 @@ static void sdio_uart_shutdown(struct tty_port *tport)
|
||||
sdio_uart_release_func(port);
|
||||
}
|
||||
|
||||
static void sdio_uart_port_destroy(struct tty_port *tport)
|
||||
{
|
||||
struct sdio_uart_port *port =
|
||||
container_of(tport, struct sdio_uart_port, port);
|
||||
kfifo_free(&port->xmit_fifo);
|
||||
kfree(port);
|
||||
}
|
||||
|
||||
/**
|
||||
* sdio_uart_install - install method
|
||||
* @driver: the driver in use (sdio_uart in our case)
|
||||
@@ -1045,6 +1042,7 @@ static const struct tty_port_operations sdio_uart_port_ops = {
|
||||
.carrier_raised = uart_carrier_raised,
|
||||
.shutdown = sdio_uart_shutdown,
|
||||
.activate = sdio_uart_activate,
|
||||
.destruct = sdio_uart_port_destroy,
|
||||
};
|
||||
|
||||
static const struct tty_operations sdio_uart_ops = {
|
||||
|
Referens i nytt ärende
Block a user