diff options
author | Mike Pagano <mpagano@gentoo.org> | 2017-10-14 10:28:02 -0400 |
---|---|---|
committer | Mike Pagano <mpagano@gentoo.org> | 2017-10-14 10:28:02 -0400 |
commit | 45a997db178a0677381de56d0e6dedc59e79cbce (patch) | |
tree | 7afc31c7fa3c386ac3fb94a842c4b63079466735 | |
parent | Linux patch 4.13.6 (diff) | |
download | linux-patches-45a997db.tar.gz linux-patches-45a997db.tar.bz2 linux-patches-45a997db.zip |
Linux patch 4.13.74.13-9
-rw-r--r-- | 0000_README | 4 | ||||
-rw-r--r-- | 1006_linux-4.13.7.patch | 99 |
2 files changed, 103 insertions, 0 deletions
diff --git a/0000_README b/0000_README index 92f54b83..b6a0ed9c 100644 --- a/0000_README +++ b/0000_README @@ -67,6 +67,10 @@ Patch: 1005_linux-4.13.6.patch From: http://www.kernel.org Desc: Linux 4.13.6 +Patch: 1006_linux-4.13.7.patch +From: http://www.kernel.org +Desc: Linux 4.13.7 + Patch: 1500_XATTR_USER_PREFIX.patch From: https://bugs.gentoo.org/show_bug.cgi?id=470644 Desc: Support for namespace user.pax.* on tmpfs. diff --git a/1006_linux-4.13.7.patch b/1006_linux-4.13.7.patch new file mode 100644 index 00000000..038d91dd --- /dev/null +++ b/1006_linux-4.13.7.patch @@ -0,0 +1,99 @@ +diff --git a/Documentation/watchdog/watchdog-parameters.txt b/Documentation/watchdog/watchdog-parameters.txt +index b3526365ea8e..6f9d7b418917 100644 +--- a/Documentation/watchdog/watchdog-parameters.txt ++++ b/Documentation/watchdog/watchdog-parameters.txt +@@ -117,7 +117,7 @@ nowayout: Watchdog cannot be stopped once started + ------------------------------------------------- + iTCO_wdt: + heartbeat: Watchdog heartbeat in seconds. +- (5<=heartbeat<=74 (TCO v1) or 1226 (TCO v2), default=30) ++ (2<heartbeat<39 (TCO v1) or 613 (TCO v2), default=30) + nowayout: Watchdog cannot be stopped once started + (default=kernel config parameter) + ------------------------------------------------- +diff --git a/Makefile b/Makefile +index 9e1af1af327b..0d4f1b19869d 100644 +--- a/Makefile ++++ b/Makefile +@@ -1,6 +1,6 @@ + VERSION = 4 + PATCHLEVEL = 13 +-SUBLEVEL = 6 ++SUBLEVEL = 7 + EXTRAVERSION = + NAME = Fearless Coyote + +diff --git a/drivers/watchdog/iTCO_wdt.c b/drivers/watchdog/iTCO_wdt.c +index c4f65873bfa4..347f0389b089 100644 +--- a/drivers/watchdog/iTCO_wdt.c ++++ b/drivers/watchdog/iTCO_wdt.c +@@ -306,15 +306,16 @@ static int iTCO_wdt_ping(struct watchdog_device *wd_dev) + + iTCO_vendor_pre_keepalive(p->smi_res, wd_dev->timeout); + +- /* Reset the timeout status bit so that the timer +- * needs to count down twice again before rebooting */ +- outw(0x0008, TCO1_STS(p)); /* write 1 to clear bit */ +- + /* Reload the timer by writing to the TCO Timer Counter register */ +- if (p->iTCO_version >= 2) ++ if (p->iTCO_version >= 2) { + outw(0x01, TCO_RLD(p)); +- else if (p->iTCO_version == 1) ++ } else if (p->iTCO_version == 1) { ++ /* Reset the timeout status bit so that the timer ++ * needs to count down twice again before rebooting */ ++ outw(0x0008, TCO1_STS(p)); /* write 1 to clear bit */ ++ + outb(0x01, TCO_RLD(p)); ++ } + + spin_unlock(&p->io_lock); + return 0; +@@ -327,8 +328,11 @@ static int iTCO_wdt_set_timeout(struct watchdog_device *wd_dev, unsigned int t) + unsigned char val8; + unsigned int tmrval; + +- /* The timer counts down twice before rebooting */ +- tmrval = seconds_to_ticks(p, t) / 2; ++ tmrval = seconds_to_ticks(p, t); ++ ++ /* For TCO v1 the timer counts down twice before rebooting */ ++ if (p->iTCO_version == 1) ++ tmrval /= 2; + + /* from the specs: */ + /* "Values of 0h-3h are ignored and should not be attempted" */ +@@ -381,8 +385,6 @@ static unsigned int iTCO_wdt_get_timeleft(struct watchdog_device *wd_dev) + spin_lock(&p->io_lock); + val16 = inw(TCO_RLD(p)); + val16 &= 0x3ff; +- if (!(inw(TCO1_STS(p)) & 0x0008)) +- val16 += (inw(TCOv2_TMR(p)) & 0x3ff); + spin_unlock(&p->io_lock); + + time_left = ticks_to_seconds(p, val16); +diff --git a/kernel/exit.c b/kernel/exit.c +index 6d31fc5ba50d..135b36985f8a 100644 +--- a/kernel/exit.c ++++ b/kernel/exit.c +@@ -1611,6 +1611,9 @@ SYSCALL_DEFINE5(waitid, int, which, pid_t, upid, struct siginfo __user *, + if (!infop) + return err; + ++ if (!access_ok(VERIFY_WRITE, infop, sizeof(*infop))) ++ goto Efault; ++ + user_access_begin(); + unsafe_put_user(signo, &infop->si_signo, Efault); + unsafe_put_user(0, &infop->si_errno, Efault); +@@ -1736,6 +1739,9 @@ COMPAT_SYSCALL_DEFINE5(waitid, + if (!infop) + return err; + ++ if (!access_ok(VERIFY_WRITE, infop, sizeof(*infop))) ++ goto Efault; ++ + user_access_begin(); + unsafe_put_user(signo, &infop->si_signo, Efault); + unsafe_put_user(0, &infop->si_errno, Efault); |