tree 73e93a338f15f4271a16de25a739e956fa0b0001
parent ec2df4364666a96e7868b7257bc7235bae263dcb
parent 67c632b4a7fbd6b76a08b86f4950f0f84de93439
author Linus Torvalds <torvalds@linux-foundation.org> 1753633892 -0700
committer Linus Torvalds <torvalds@linux-foundation.org> 1753633892 -0700
mergetag object 67c632b4a7fbd6b76a08b86f4950f0f84de93439
 type commit
 tag timers-urgent-2025-07-27
 tagger Thomas Gleixner <tglx@linutronix.de> 1753617422 +0200
 
 A single fix for the PTP systemcounter mechanism:
 
   The rework of this mechanism added a 'use_nsec' member to struct
   system_counterval. get_device_system_crosststamp() instantiates that
   struct on the stack and hands a pointer to the driver callback.
 
   Only the drivers which set use_nsec to true, initialize that field, but
   all others ignore it. As get_device_system_crosststamp() does not
   initialize the struct, the use_nsec field contains random stack content
   in those cases. That causes a miscalulation usually resulting in a
   failing range check in the best case.
 
   Initialize the structure before handing it to the drivers to cure that.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAmiGFA4THHRnbHhAbGlu
 dXRyb25peC5kZQAKCRCmGPVMDXSYoRcsEACvQI0LmKTOigzSZvBT1CZnGcwpeqYi
 Ez0v/w+tpyfbwQgf9kxR+ZbjNdwqCYFnR8PZPFKFuvsanWRTIcYaTkIQWvDhcEX/
 U4AFI3VkdZUFckCEY/fv7j3/jkp7pbLVHMq001Z9xaMMcE+ox1AlHpEW0Khd3gqL
 VFLXU5S7Q9H6J6ujjFAXAMuhgjk6WOz8q+ew3hnc3dxwyuEBAz83jOScH/be3dTl
 10ydzoxFEa+ZlacAHX+SqZ7nhS7ExxNlwlUuTYj/EkBCQ8UIoS93YLA5bYMcWCao
 W5rs6vFJmMO6NR6lkqwfKmKyjovx79jHMVNKoxydZGvkqcNMtfc/eUfByxAkyCDP
 gmTCFwgKVGdjGsYwkGqafejmJt5OFrD1hMyWfBhGWQ/Z8CXuuJNEa/8trSyUK/CS
 DFD1InOLltbYuw7rY5gRxb+xmgBTxUMj8gF/hXYs7wNzJqNJXXNae/2Sue+Xi+mV
 iieEF8UonmpMe9k9w3+fFGGDWYa4lYnT5O3VMQ0nEjj6dt5RVQqRvjTa+GtQJzUs
 h4fUs+BIKyCkh6DgRKyIsDruzryOSnZ+vqMcGMm0gvPttc3cGYksLiQVlWYjQhxs
 pTFrHNGOSXMT5WBQ7KWKzGypHlf3WYhVWk1+dmPJedrdyr23AfgKAGM6zva1Oqjc
 81w9DvppBL0sOA==
 =j6Po
 -----END PGP SIGNATURE-----

Merge tag 'timers-urgent-2025-07-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer fix from Thomas Gleixner:
 "A single fix for the PTP systemcounter mechanism:

  The rework of this mechanism added a 'use_nsec' member to struct
  system_counterval. get_device_system_crosststamp() instantiates that
  struct on the stack and hands a pointer to the driver callback.

  Only the drivers which set use_nsec to true, initialize that field,
  but all others ignore it. As get_device_system_crosststamp() does not
  initialize the struct, the use_nsec field contains random stack
  content in those cases. That causes a miscalulation usually resulting
  in a failing range check in the best case.

  Initialize the structure before handing it to the drivers to cure
  that"

* tag 'timers-urgent-2025-07-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  timekeeping: Zero initialize system_counterval when querying time from phc drivers
