Commit e3e4e566 authored by Jakub Kicinski's avatar Jakub Kicinski

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.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parents 0b84db5d ea531dc6
......@@ -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;
}
......
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment