Commit cbd0e482 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'tty-5.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty

Pull tty/serial fixes from Greg KH:
 "Here are three small TTY/Serial/VT fixes for 5.7-rc5:

   - revert for the bcm63xx driver "fix" that was incorrect

   - vt unicode console bugfix

   - xilinx_uartps console driver fix

  All of these have been in linux next with no reported issues"

* tag 'tty-5.7-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
  tty: xilinx_uartps: Fix missing id assignment to the console
  vt: fix unicode console freeing with a common interface
  Revert "tty: serial: bcm63xx: fix missing clk_put() in bcm63xx_uart"
parents 0a0b96b2 2ae11c46
...@@ -843,10 +843,8 @@ static int bcm_uart_probe(struct platform_device *pdev) ...@@ -843,10 +843,8 @@ static int bcm_uart_probe(struct platform_device *pdev)
if (IS_ERR(clk) && pdev->dev.of_node) if (IS_ERR(clk) && pdev->dev.of_node)
clk = of_clk_get(pdev->dev.of_node, 0); clk = of_clk_get(pdev->dev.of_node, 0);
if (IS_ERR(clk)) { if (IS_ERR(clk))
clk_put(clk);
return -ENODEV; return -ENODEV;
}
port->iotype = UPIO_MEM; port->iotype = UPIO_MEM;
port->irq = res_irq->start; port->irq = res_irq->start;
......
...@@ -1459,6 +1459,7 @@ static int cdns_uart_probe(struct platform_device *pdev) ...@@ -1459,6 +1459,7 @@ static int cdns_uart_probe(struct platform_device *pdev)
cdns_uart_uart_driver.nr = CDNS_UART_NR_PORTS; cdns_uart_uart_driver.nr = CDNS_UART_NR_PORTS;
#ifdef CONFIG_SERIAL_XILINX_PS_UART_CONSOLE #ifdef CONFIG_SERIAL_XILINX_PS_UART_CONSOLE
cdns_uart_uart_driver.cons = &cdns_uart_console; cdns_uart_uart_driver.cons = &cdns_uart_console;
cdns_uart_console.index = id;
#endif #endif
rc = uart_register_driver(&cdns_uart_uart_driver); rc = uart_register_driver(&cdns_uart_uart_driver);
......
...@@ -365,9 +365,14 @@ static struct uni_screen *vc_uniscr_alloc(unsigned int cols, unsigned int rows) ...@@ -365,9 +365,14 @@ static struct uni_screen *vc_uniscr_alloc(unsigned int cols, unsigned int rows)
return uniscr; return uniscr;
} }
static void vc_uniscr_free(struct uni_screen *uniscr)
{
vfree(uniscr);
}
static void vc_uniscr_set(struct vc_data *vc, struct uni_screen *new_uniscr) static void vc_uniscr_set(struct vc_data *vc, struct uni_screen *new_uniscr)
{ {
vfree(vc->vc_uni_screen); vc_uniscr_free(vc->vc_uni_screen);
vc->vc_uni_screen = new_uniscr; vc->vc_uni_screen = new_uniscr;
} }
...@@ -1230,7 +1235,7 @@ static int vc_do_resize(struct tty_struct *tty, struct vc_data *vc, ...@@ -1230,7 +1235,7 @@ static int vc_do_resize(struct tty_struct *tty, struct vc_data *vc,
err = resize_screen(vc, new_cols, new_rows, user); err = resize_screen(vc, new_cols, new_rows, user);
if (err) { if (err) {
kfree(newscreen); kfree(newscreen);
kfree(new_uniscr); vc_uniscr_free(new_uniscr);
return err; return err;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment