> -----Original Message-----
> From: Intel-wired-lan <[email protected]> On Behalf Of
> Jesse Brandeburg
> Sent: Monday, July 28, 2025 6:19 PM
> To: Frederick Lawler <[email protected]>; Nguyen, Anthony L
> <[email protected]>; Kitszel, Przemyslaw
> <[email protected]>
> Cc: [email protected]; [email protected]; AndrewLunn
> <[email protected]>; David S. Miller <[email protected]>; Eric
> Dumazet <[email protected]>; Jakub Kicinski <[email protected]>;
> Paolo Abeni <[email protected]>; [email protected]; intel-
> [email protected]
> Subject: Re: [Intel-wired-lan] ice: General protection fault in 
> ptp_clock_index
> 
> +IWL
> 
> Hi Intel team, anyone have an idea on this? Looks like maybe removal of
> device 0 that had originally registered PTP clock isn't handled well?
> 

Hi All,

Thank you for your message. We're looking into this.
Yes, at first sight it seems to be a race condition hit while removing PF which 
is PTP
owner (and responsible for removing PTP clock).

Kind regards

Grzegorz 

> On 7/24/25 1:25 PM, Frederick Lawler wrote:
> > Hi,
> >
> > On Linux 6.12.39, we appear to hit a race reading ethtool while the
> > device is removed.
> >
> > We have automation to remove unused interfaces during early boot
> > process, and when systemd is restarting the network afterwards, we
> > get a page fault and get into a boot-crash-loop state. We're currently
> > renaming the interface to something like unused0 to circumvent the
> > issue.
> >
> > I was able to reproduce with the following snippet:
> >
> > $ watch -n0.1 /sbin/ethtool -T ext0
> > $ echo -n "1" | sudo tee /sys/class/net/ext0/device/remove
> >
> > ice 0000:41:00.0: Removed PTP clock
> >
> > ...
> >
> > Oops: general protection fault, probably for non-canonical address
> 0xae09e2b3b0c665f1: 0000 [#1] PREEMPT SMP NOPTI
> > Tainted: [O]=OOT_MODULE
> > Hardware name: Lenovo HR355M-V3-G12/HR355M_V3_HPM, BIOS
> HR355M_V3.G.031 02/17/2025
> > RIP: 0010:ptp_clock_index (drivers/ptp/ptp_clock.c:476 (discriminator 1))
> > Code: 38 1b 4e 00 66 66 2e 0f 1f 84 00 00 00 00 00 66 90 90 90 90 90 90 90 
> > 90
> 90 90 90 90 90 90 90 90 90 f3 0f 1e fa 0f 1f 44 00 00 <8b> 87 94 03 00 00 e9 
> 07 1b
> 4e 00 66 66 2e 0f 1f 84 00 00 00 00 00
> > All code
> > ========
> >     0:      38 1b                   cmp    %bl,(%rbx)
> >     2:      4e 00 66 66             rex.WRX add %r12b,0x66(%rsi)
> >     6:      2e 0f 1f 84 00 00 00    cs nopl 0x0(%rax,%rax,1)
> >     d:      00 00
> >     f:      66 90                   xchg   %ax,%ax
> >    11:      90                      nop
> >    12:      90                      nop
> >    13:      90                      nop
> >    14:      90                      nop
> >    15:      90                      nop
> >    16:      90                      nop
> >    17:      90                      nop
> >    18:      90                      nop
> >    19:      90                      nop
> >    1a:      90                      nop
> >    1b:      90                      nop
> >    1c:      90                      nop
> >    1d:      90                      nop
> >    1e:      90                      nop
> >    1f:      90                      nop
> >    20:      90                      nop
> >    21:      f3 0f 1e fa             endbr64
> >    25:      0f 1f 44 00 00          nopl   0x0(%rax,%rax,1)
> >    2a:*     8b 87 94 03 00 00       mov    0x394(%rdi),%eax         <--
> trapping instruction
> >    30:      e9 07 1b 4e 00          jmp    0x4e1b3c
> >    35:      66 66 2e 0f 1f 84 00    data16 cs nopw 0x0(%rax,%rax,1)
> >    3c:      00 00 00 00
> >
> > Code starting with the faulting instruction
> > ===========================================
> >     0:      8b 87 94 03 00 00       mov    0x394(%rdi),%eax
> >     6:      e9 07 1b 4e 00          jmp    0x4e1b12
> >     b:      66 66 2e 0f 1f 84 00    data16 cs nopw 0x0(%rax,%rax,1)
> >    12:      00 00 00 00
> > RSP: 0018:ffffb5664f657c88 EFLAGS: 00010282
> > RAX: ffff9f4854c201a0 RBX: ffffb5664f657d34 RCX: ffffffffc1c6a5c0
> > RDX: 555485607aaada55 RSI: ffffb5664f657d34 RDI: ae09e2b3b0c6625d
> > RBP: ffffb5664f657df0 R08: 0000000000000000 R09: ffff9f3124c570a8
> > R10: ffffb5664f657cc0 R11: 0000000000000001 R12: ffffffffafab4680
> > R13: 00007ffc828fdbb0 R14: ffff9f3124c57000 R15: ffffb5664f657d80
> > FS:  00007ff5abba1340(0000) GS:ffff9f402f600000(0000)
> knlGS:0000000000000000
> > CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 00007ff5ac03f0c0 CR3: 0000000a8768e006 CR4: 0000000000770ef0
> > PKRU: 55555554
> > Call Trace:
> > <TASK>
> > ice_get_ts_info (drivers/net/ethernet/intel/ice/ice_ethtool.c:3776
> (discriminator 1)) ice
> > __ethtool_get_ts_info (net/ethtool/common.c:713)
> > __ethtool_get_ts_info (net/ethtool/common.c:713)
> > dev_ethtool (net/ethtool/ioctl.c:2651 net/ethtool/ioctl.c:3312
> net/ethtool/ioctl.c:3390)
> > ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182)
> > ? trace_call_bpf (kernel/trace/bpf_trace.c:151 (discriminator 38))
> > ? security_file_ioctl (security/security.c:2909)
> > ? trace_call_bpf (kernel/trace/bpf_trace.c:151 (discriminator 38))
> > ? __x64_sys_ioctl (fs/ioctl.c:893)
> > ? kprobe_ftrace_handler (arch/x86/kernel/kprobes/ftrace.c:45
> (discriminator 1))
> > ? srso_alias_return_thunk (arch/x86/lib/retpoline.S:182)
> > dev_ioctl (net/core/dev_ioctl.c:720)
> > sock_ioctl (net/socket.c:1242 net/socket.c:1346)
> > __x64_sys_ioctl (fs/ioctl.c:51 fs/ioctl.c:907 fs/ioctl.c:893 fs/ioctl.c:893)
> > osnoise_arch_unregister (??:?)
> > entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130)
> > RIP: 0033:0x7ff5abe13d1b
> > Code: 00 48 89 44 24 18 31 c0 48 8d 44 24 60 c7 04 24 10 00 00 00 48 89 44 
> > 24
> 08 48 8d 44 24 20 48 89 44 24 10 b8 10 00 00 00 0f 05 <89> c2 3d 00 f0 ff ff 
> 77 1c
> 48 8b 44 24 18 64 48 2b 04 25 28 00 00
> > All code
> > ========
> >     0:      00 48 89                add    %cl,-0x77(%rax)
> >     3:      44 24 18                rex.R and $0x18,%al
> >     6:      31 c0                   xor    %eax,%eax
> >     8:      48 8d 44 24 60          lea    0x60(%rsp),%rax
> >     d:      c7 04 24 10 00 00 00    movl   $0x10,(%rsp)
> >    14:      48 89 44 24 08          mov    %rax,0x8(%rsp)
> >    19:      48 8d 44 24 20          lea    0x20(%rsp),%rax
> >    1e:      48 89 44 24 10          mov    %rax,0x10(%rsp)
> >    23:      b8 10 00 00 00          mov    $0x10,%eax
> >    28:      0f 05                   syscall
> >    2a:*     89 c2                   mov    %eax,%edx                <-- 
> > trapping
> instruction
> >    2c:      3d 00 f0 ff ff          cmp    $0xfffff000,%eax
> >    31:      77 1c                   ja     0x4f
> >    33:      48 8b 44 24 18          mov    0x18(%rsp),%rax
> >    38:      64                      fs
> >    39:      48                      rex.W
> >    3a:      2b                      .byte 0x2b
> >    3b:      04 25                   add    $0x25,%al
> >    3d:      28 00                   sub    %al,(%rax)
> >     ...
> >
> > Code starting with the faulting instruction
> > ===========================================
> >     0:      89 c2                   mov    %eax,%edx
> >     2:      3d 00 f0 ff ff          cmp    $0xfffff000,%eax
> >     7:      77 1c                   ja     0x25
> >     9:      48 8b 44 24 18          mov    0x18(%rsp),%rax
> >     e:      64                      fs
> >     f:      48                      rex.W
> >    10:      2b                      .byte 0x2b
> >    11:      04 25                   add    $0x25,%al
> >    13:      28 00                   sub    %al,(%rax)
> >     ...
> > RSP: 002b:00007ffc828fdb20 EFLAGS: 00000246 ORIG_RAX:
> 0000000000000010
> > RAX: ffffffffffffffda RBX: 000056370e675800 RCX: 00007ff5abe13d1b
> > RDX: 00007ffc828fdb80 RSI: 0000000000008946 RDI: 0000000000000005
> > RBP: 000056370e6757e0 R08: 00007ff5abee8c60 R09: 0000000000000000
> > R10: 00007ff5abd2f310 R11: 0000000000000246 R12: 00007ffc828fdd80
> > R13: 0000000000000005 R14: 00007ffc828fdb80 R15: 00007ffc828fff1a
> > </TASK>
> >

Reply via email to