I'm announcing the release of the 5.13.18 kernel.
This, and the other stable kernels released today, consist of only some reverts to solve some reported problems with the last round of stable releases. Upgrading is not required, but highly recommended.
The updated 5.13.y git tree can be found at: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.13.y and can be browsed at the normal kernel.org git web browser: https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git%3Ba=summa...
thanks,
greg k-h
------------
Makefile | 2 +- include/linux/time64.h | 9 ++------- kernel/time/posix-cpu-timers.c | 2 ++ net/bluetooth/hci_core.c | 8 -------- 4 files changed, 5 insertions(+), 16 deletions(-)
Greg Kroah-Hartman (3): Revert "posix-cpu-timers: Force next expiration recalc after itimer reset" Revert "time: Handle negative seconds correctly in timespec64_to_ns()" Linux 5.13.18
Sasha Levin (1): Revert "Bluetooth: Move shutdown callback before flushing tx and rx queue"
diff --git a/Makefile b/Makefile index c79a2c70a22b..ddbd64b92a72 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 13 -SUBLEVEL = 17 +SUBLEVEL = 18 EXTRAVERSION = NAME = Opossums on Parade
diff --git a/include/linux/time64.h b/include/linux/time64.h index 81b9686a2079..5117cb5b5656 100644 --- a/include/linux/time64.h +++ b/include/linux/time64.h @@ -25,9 +25,7 @@ struct itimerspec64 { #define TIME64_MIN (-TIME64_MAX - 1)
#define KTIME_MAX ((s64)~((u64)1 << 63)) -#define KTIME_MIN (-KTIME_MAX - 1) #define KTIME_SEC_MAX (KTIME_MAX / NSEC_PER_SEC) -#define KTIME_SEC_MIN (KTIME_MIN / NSEC_PER_SEC)
/* * Limits for settimeofday(): @@ -126,13 +124,10 @@ static inline bool timespec64_valid_settod(const struct timespec64 *ts) */ static inline s64 timespec64_to_ns(const struct timespec64 *ts) { - /* Prevent multiplication overflow / underflow */ - if (ts->tv_sec >= KTIME_SEC_MAX) + /* Prevent multiplication overflow */ + if ((unsigned long long)ts->tv_sec >= KTIME_SEC_MAX) return KTIME_MAX;
- if (ts->tv_sec <= KTIME_SEC_MIN) - return KTIME_MIN; - return ((s64) ts->tv_sec * NSEC_PER_SEC) + ts->tv_nsec; }
diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c index a9f8d25220b1..aa52fc85dbcb 100644 --- a/kernel/time/posix-cpu-timers.c +++ b/kernel/time/posix-cpu-timers.c @@ -1346,6 +1346,8 @@ void set_process_cpu_timer(struct task_struct *tsk, unsigned int clkid, } }
+ if (!*newval) + return; *newval += now; }
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index bf1bb08b94aa..8d455c232154 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c @@ -1740,14 +1740,6 @@ int hci_dev_do_close(struct hci_dev *hdev) hci_request_cancel_all(hdev); hci_req_sync_lock(hdev);
- if (!hci_dev_test_flag(hdev, HCI_UNREGISTER) && - !hci_dev_test_flag(hdev, HCI_USER_CHANNEL) && - test_bit(HCI_UP, &hdev->flags)) { - /* Execute vendor specific shutdown routine */ - if (hdev->shutdown) - hdev->shutdown(hdev); - } - if (!test_and_clear_bit(HCI_UP, &hdev->flags)) { cancel_delayed_work_sync(&hdev->cmd_timer); hci_req_sync_unlock(hdev);
linux-stable-mirror@lists.linaro.org