TTY/Serial fixes for 5.7-rc5

Here are 3 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
 
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 -----BEGIN PGP SIGNATURE-----
 
 iG0EABECAC0WIQT0tgzFv3jCIUoxPcsxR9QN2y37KQUCXrVmRg8cZ3JlZ0Brcm9h
 aC5jb20ACgkQMUfUDdst+ymY+ACfelBeBAxlYjuvZ8QpDYSkR9fl8EIAoKeuJocX
 TaXtUFCvCSax68siL81w
 =L0Rp
 -----END PGP SIGNATURE-----

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"
This commit is contained in:
Linus Torvalds 2020-05-08 08:56:16 -07:00
commit cbd0e48213
3 changed files with 9 additions and 5 deletions

View File

@ -843,10 +843,8 @@ static int bcm_uart_probe(struct platform_device *pdev)
if (IS_ERR(clk) && pdev->dev.of_node)
clk = of_clk_get(pdev->dev.of_node, 0);
if (IS_ERR(clk)) {
clk_put(clk);
if (IS_ERR(clk))
return -ENODEV;
}
port->iotype = UPIO_MEM;
port->irq = res_irq->start;

View File

@ -1459,6 +1459,7 @@ static int cdns_uart_probe(struct platform_device *pdev)
cdns_uart_uart_driver.nr = CDNS_UART_NR_PORTS;
#ifdef CONFIG_SERIAL_XILINX_PS_UART_CONSOLE
cdns_uart_uart_driver.cons = &cdns_uart_console;
cdns_uart_console.index = id;
#endif
rc = uart_register_driver(&cdns_uart_uart_driver);

View File

@ -365,9 +365,14 @@ static struct uni_screen *vc_uniscr_alloc(unsigned int cols, unsigned int rows)
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)
{
vfree(vc->vc_uni_screen);
vc_uniscr_free(vc->vc_uni_screen);
vc->vc_uni_screen = new_uniscr;
}
@ -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);
if (err) {
kfree(newscreen);
kfree(new_uniscr);
vc_uniscr_free(new_uniscr);
return err;
}