Hello, > > Great explanation! igb_clean_rx_irq_zc() does not need the same treatment, > correct? > > Reviewed-by: Kurt Kanzenbach <[email protected]> >
Looks in the ZC path each frame fits in a single buffer, so igb_ptp_rx_pktstamp() only runs on that one buffer. The bug only hits the regular RX path, which can spread a frame over multiple buffers and calls igb_ptp_rx_pktstamp() on each one - a continuation buffer can then be misread as a timestamp header. On affected systems I switched to Intel's out-of-tree igb 5.19.10 driver, which is not affected. I also reproduced both the failure and the 5.19.10 success with a simple UDP test client/server (jumbo all-zero payloads), matching what the real GigE camera showed Regards Tjerk
