Commit e3e4e566 authored by Jakub Kicinski's avatar Jakub Kicinski
Browse files

Merge branch 'posix-clock-fix-missing-timespec64-check-for-ptp-clock'

Jinjie Ruan says:

====================
posix-clock: Fix missing timespec64 check for PTP clock

Check timespec64 in pc_clock_settime() for PTP clock as
the man manual of clock_settime() said.
====================

Link: https://patch.msgid.link/20241009072302.1754567-1-ruanjinjie@huawei.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 0b84db5d ea531dc6
Loading
Loading
Loading
Loading
+14 −21
Original line number Diff line number Diff line
@@ -401,16 +401,13 @@ static int lan743x_ptpci_settime64(struct ptp_clock_info *ptpci,
	u32 nano_seconds = 0;
	u32 seconds = 0;

	if (ts) {
		if (ts->tv_sec > 0xFFFFFFFFLL ||
		    ts->tv_sec < 0) {
	if (ts->tv_sec > 0xFFFFFFFFLL) {
		netif_warn(adapter, drv, adapter->netdev,
			   "ts->tv_sec out of range, %lld\n",
			   ts->tv_sec);
		return -ERANGE;
	}
		if (ts->tv_nsec >= 1000000000L ||
		    ts->tv_nsec < 0) {
	if (ts->tv_nsec < 0) {
		netif_warn(adapter, drv, adapter->netdev,
			   "ts->tv_nsec out of range, %ld\n",
			   ts->tv_nsec);
@@ -419,10 +416,6 @@ static int lan743x_ptpci_settime64(struct ptp_clock_info *ptpci,
	seconds = ts->tv_sec;
	nano_seconds = ts->tv_nsec;
	lan743x_ptp_clock_set(adapter, seconds, nano_seconds, 0);
	} else {
		netif_warn(adapter, drv, adapter->netdev, "ts == NULL\n");
		return -EINVAL;
	}

	return 0;
}
+3 −0
Original line number Diff line number Diff line
@@ -318,6 +318,9 @@ static int pc_clock_settime(clockid_t id, const struct timespec64 *ts)
		goto out;
	}

	if (!timespec64_valid_strict(ts))
		return -EINVAL;

	if (cd.clk->ops.clock_settime)
		err = cd.clk->ops.clock_settime(cd.clk, ts);
	else