]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gve: fix NULL dereference due to missing ptp adjfine
authorJordan Rhee <jordanrhee@google.com>
Fri, 7 Aug 2026 22:43:15 +0000 (22:43 +0000)
committerJakub Kicinski <kuba@kernel.org>
Wed, 12 Aug 2026 01:26:04 +0000 (18:26 -0700)
Fix NULL dereference due to missing implementation of adjfine, which can
be triggered from usermode as follows:

sudo ./testptp -d /dev/ptp0 -f 0
[  551.943697] BUG: kernel NULL pointer dereference, address: 0000000000000000
[...]
[  552.061946] Call Trace:
[  552.064487]  <TASK>
[  552.066681]  ptp_clock_adjtime+0x1c0/0x2c0
[  552.070874]  ? get_clock_desc+0x6b/0xb0
[  552.074825]  pc_clock_adjtime+0x78/0xc0
[  552.078755]  __do_sys_clock_adjtime+0x85/0x110
[  552.083293]  do_syscall_64+0xea/0x610

Cc: stable@vger.kernel.org
Fixes: acd16380523b ("gve: Add initial PTP device support")
Signed-off-by: Jordan Rhee <jordanrhee@google.com>
Signed-off-by: Harshitha Ramamurthy <hramamurthy@google.com>
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Link: https://patch.msgid.link/20260807224315.234152-3-hramamurthy@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/google/gve/gve_ptp.c

index 06b1cf4a5efcc09fa123abfe33610027bbf8c1f2..1d6c59f4ead3dbfa3e9c95ef4f8d389a5b7738e2 100644 (file)
@@ -26,6 +26,11 @@ int gve_clock_nic_ts_read(struct gve_priv *priv)
        return 0;
 }
 
+static int gve_ptp_adjfine(struct ptp_clock_info *ptp, long scaled_ppm)
+{
+       return -EOPNOTSUPP;
+}
+
 static int gve_ptp_gettimex64(struct ptp_clock_info *info,
                              struct timespec64 *ts,
                              struct ptp_system_timestamp *sts)
@@ -60,6 +65,7 @@ out:
 static const struct ptp_clock_info gve_ptp_caps = {
        .owner          = THIS_MODULE,
        .name           = "gve clock",
+       .adjfine        = gve_ptp_adjfine,
        .gettimex64     = gve_ptp_gettimex64,
        .settime64      = gve_ptp_settime64,
        .do_aux_work    = gve_ptp_do_aux_work,