Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 338420
b: refs/heads/master
c: e70c677
h: refs/heads/master
v: v3
  • Loading branch information
Jiri Slaby authored and Greg Kroah-Hartman committed Nov 16, 2012
1 parent ff7b515 commit 4867bfd
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 13 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 9753eb8de8a36de41f3b5e217e995cccfbecdada
refs/heads/master: e70c67713cdabf55e05db7f1c4fc38085da333a5
23 changes: 11 additions & 12 deletions trunk/drivers/mmc/card/sdio_uart.c
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,6 @@ struct uart_icount {

struct sdio_uart_port {
struct tty_port port;
struct kref kref;
unsigned int index;
struct sdio_func *func;
struct mutex func_lock;
Expand All @@ -92,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))
Expand Down Expand Up @@ -122,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)
Expand Down Expand Up @@ -736,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)
Expand Down Expand Up @@ -1044,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 = {
Expand Down

0 comments on commit 4867bfd

Please sign in to comment.