diff -druNp --no-dereference linux-libre-4.13.6-gnu/Documentation/watchdog/watchdog-parameters.txt linux-libre-4.13.7-gnu/Documentation/watchdog/watchdog-parameters.txt
--- linux-libre-4.13.6-gnu/Documentation/watchdog/watchdog-parameters.txt	2017-10-12 05:56:20.000000000 -0400
+++ linux-libre-4.13.7-gnu/Documentation/watchdog/watchdog-parameters.txt	2017-10-14 09:38:17.000000000 -0400
@@ -117,7 +117,7 @@ nowayout: Watchdog cannot be stopped onc
 -------------------------------------------------
 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 -druNp --no-dereference linux-libre-4.13.6-gnu/drivers/watchdog/iTCO_wdt.c linux-libre-4.13.7-gnu/drivers/watchdog/iTCO_wdt.c
--- linux-libre-4.13.6-gnu/drivers/watchdog/iTCO_wdt.c	2017-10-12 05:56:20.000000000 -0400
+++ linux-libre-4.13.7-gnu/drivers/watchdog/iTCO_wdt.c	2017-10-14 09:38:17.000000000 -0400
@@ -306,15 +306,16 @@ static int iTCO_wdt_ping(struct watchdog
 
 	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 w
 	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_timelef
 		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 -druNp --no-dereference linux-libre-4.13.6-gnu/kernel/exit.c linux-libre-4.13.7-gnu/kernel/exit.c
--- linux-libre-4.13.6-gnu/kernel/exit.c	2017-10-12 05:56:20.000000000 -0400
+++ linux-libre-4.13.7-gnu/kernel/exit.c	2017-10-14 09:38:17.000000000 -0400
@@ -1611,6 +1611,9 @@ SYSCALL_DEFINE5(waitid, int, which, pid_
 	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);
diff -druNp --no-dereference linux-libre-4.13.6-gnu/Makefile linux-libre-4.13.7-gnu/Makefile
--- linux-libre-4.13.6-gnu/Makefile	2017-10-12 16:25:23.000000000 -0400
+++ linux-libre-4.13.7-gnu/Makefile	2017-10-14 11:50:28.000000000 -0400
@@ -1,6 +1,6 @@
 VERSION = 4
 PATCHLEVEL = 13
-SUBLEVEL = 6
+SUBLEVEL = 7
 EXTRAVERSION = -gnu
 NAME = Fearless Coyote
 
