Skip to content

Commit

Permalink
Merge tag 'tty-4.20-rc6' of git://git.kernel.org/pub/scm/linux/kernel…
Browse files Browse the repository at this point in the history
…/git/gregkh/tty

Pull tty driver fixes from Greg KH:
 "Here are three small tty driver fixes for 4.20-rc6

  Nothing major, just some bug fixes for reported issues. Full details
  are in the shortlog.

  All of these have been in linux-next for a while with no reported
  issues"

* tag 'tty-4.20-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
  kgdboc: fix KASAN global-out-of-bounds bug in param_set_kgdboc_var()
  tty: serial: 8250_mtk: always resume the device in probe.
  tty: do not set TTY_IO_ERROR flag if console port
  • Loading branch information
Linus Torvalds committed Dec 9, 2018
2 parents 50a5528 + dada6a4 commit 822b768
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 12 deletions.
16 changes: 7 additions & 9 deletions drivers/tty/serial/8250/8250_mtk.c
Original file line number Diff line number Diff line change
Expand Up @@ -213,17 +213,17 @@ static int mtk8250_probe(struct platform_device *pdev)

platform_set_drvdata(pdev, data);

pm_runtime_enable(&pdev->dev);
if (!pm_runtime_enabled(&pdev->dev)) {
err = mtk8250_runtime_resume(&pdev->dev);
if (err)
return err;
}
err = mtk8250_runtime_resume(&pdev->dev);
if (err)
return err;

data->line = serial8250_register_8250_port(&uart);
if (data->line < 0)
return data->line;

pm_runtime_set_active(&pdev->dev);
pm_runtime_enable(&pdev->dev);

return 0;
}

Expand All @@ -234,13 +234,11 @@ static int mtk8250_remove(struct platform_device *pdev)
pm_runtime_get_sync(&pdev->dev);

serial8250_unregister_port(data->line);
mtk8250_runtime_suspend(&pdev->dev);

pm_runtime_disable(&pdev->dev);
pm_runtime_put_noidle(&pdev->dev);

if (!pm_runtime_status_suspended(&pdev->dev))
mtk8250_runtime_suspend(&pdev->dev);

return 0;
}

Expand Down
4 changes: 2 additions & 2 deletions drivers/tty/serial/kgdboc.c
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ static void kgdboc_put_char(u8 chr)
static int param_set_kgdboc_var(const char *kmessage,
const struct kernel_param *kp)
{
int len = strlen(kmessage);
size_t len = strlen(kmessage);

if (len >= MAX_CONFIG_LEN) {
pr_err("config string too long\n");
Expand All @@ -254,7 +254,7 @@ static int param_set_kgdboc_var(const char *kmessage,

strcpy(config, kmessage);
/* Chop out \n char as a result of echo */
if (config[len - 1] == '\n')
if (len && config[len - 1] == '\n')
config[len - 1] = '\0';

if (configured == 1)
Expand Down
3 changes: 2 additions & 1 deletion drivers/tty/tty_port.c
Original file line number Diff line number Diff line change
Expand Up @@ -633,7 +633,8 @@ void tty_port_close(struct tty_port *port, struct tty_struct *tty,
if (tty_port_close_start(port, tty, filp) == 0)
return;
tty_port_shutdown(port, tty);
set_bit(TTY_IO_ERROR, &tty->flags);
if (!port->console)
set_bit(TTY_IO_ERROR, &tty->flags);
tty_port_close_end(port, tty);
tty_port_tty_set(port, NULL);
}
Expand Down

0 comments on commit 822b768

Please sign in to comment.