Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 822b7683 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
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
parents 50a5528a dada6a43
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -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;
	}

	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;
}

@@ -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;
}

+2 −2
Original line number Diff line number Diff line
@@ -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");
@@ -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)
+2 −1
Original line number Diff line number Diff line
@@ -633,6 +633,7 @@ 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);
	if (!port->console)
		set_bit(TTY_IO_ERROR, &tty->flags);
	tty_port_close_end(port, tty);
	tty_port_tty_set(port, NULL);