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

Commit 5e10f367 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge 5.4.147 into android11-5.4-lts



Changes in 5.4.147
	Revert "Bluetooth: Move shutdown callback before flushing tx and rx queue"
	Revert "block: nbd: add sanity check for first_minor"
	Revert "posix-cpu-timers: Force next expiration recalc after itimer reset"
	Revert "time: Handle negative seconds correctly in timespec64_to_ns()"
	Linux 5.4.147

Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
Change-Id: Ibc93011757992faa8b1dfe421787d9216901c508
parents d756462d 48a24510
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
VERSION = 5
PATCHLEVEL = 4
SUBLEVEL = 146
SUBLEVEL = 147
EXTRAVERSION =
NAME = Kleptomaniac Octopus

+0 −10
Original line number Diff line number Diff line
@@ -1744,17 +1744,7 @@ static int nbd_dev_add(int index)
	refcount_set(&nbd->refs, 1);
	INIT_LIST_HEAD(&nbd->list);
	disk->major = NBD_MAJOR;

	/* Too big first_minor can cause duplicate creation of
	 * sysfs files/links, since first_minor will be truncated to
	 * byte in __device_add_disk().
	 */
	disk->first_minor = index << part_shift;
	if (disk->first_minor > 0xff) {
		err = -EINVAL;
		goto out_free_idr;
	}

	disk->fops = &nbd_fops;
	disk->private_data = nbd;
	sprintf(disk->disk_name, "nbd%d", index);
+2 −7
Original line number Diff line number Diff line
@@ -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;
}

+2 −0
Original line number Diff line number Diff line
@@ -1201,6 +1201,8 @@ void set_process_cpu_timer(struct task_struct *tsk, unsigned int clkid,
			}
		}

		if (!*newval)
			return;
		*newval += now;
	}

+0 −8
Original line number Diff line number Diff line
@@ -1691,14 +1691,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);