Description
In the Linux kernel, the following vulnerability has been resolved: clocksource/drivers/timer-sun4i: Advertise a real minimum delta sun4i_clkevt_next_event() compensates for the timer stop/start synchronization delay by programming evt - TIMER_SYNC_TICKS into the hardware interval register. The clockevent device currently advertises TIMER_SYNC_TICKS as min_delta_ticks, so the clockevents core is allowed to call set_next_event() with evt == TIMER_SYNC_TICKS. That programs a zero-tick interval. With oneshot/highres/nohz timer operation this can leave the next event stuck, which was observed as a boot hang on Allwinner D1 after the clockevents core started reusing forced minimum-delta events. Advertise one extra tick instead, so the smallest event accepted by the core still programs at least one hardware tick after the synchronization compensation.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
12e1480bcb4920c1b02b3793cb48756497919a60 to < 0cc4b14d7401d50e53a01f1554147ee075ee6943affected12e1480bcb4920c1b02b3793cb48756497919a60 to < 53a3bc024b8e5d284468cce84957cded5f859f98affected12e1480bcb4920c1b02b3793cb48756497919a60 to < 753a220084dfc4d737f2ab9eaddc9a01a397edd7affected12e1480bcb4920c1b02b3793cb48756497919a60 to < ebba4d0aeba0e8eb3a9676380fc2652de8ab1c44affected12e1480bcb4920c1b02b3793cb48756497919a60 to < 151eb52f8712017c8f7b00bb2305e8916cb9e3dcaffected12e1480bcb4920c1b02b3793cb48756497919a60 to < bf38be01d43c4e4ca903aff7236d8486a950a252affected12e1480bcb4920c1b02b3793cb48756497919a60 to < f0efafcdf6eec1f3361bfd8c811420198f55c8bbaffected12e1480bcb4920c1b02b3793cb48756497919a60 to < d21808328225ab8cee46885bf9a0dffcefbe630eaffected
Linux Linux
Default version status: affected
3.13affected0 to < 3.13unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.109 to ≤ 6.12.*unaffected6.18.50 to ≤ 6.18.*unaffected7.2.4 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/0cc4b14d7401d50e53a01f1554147ee075ee6943 ↗
- https://git.kernel.org/stable/c/53a3bc024b8e5d284468cce84957cded5f859f98 ↗
- https://git.kernel.org/stable/c/753a220084dfc4d737f2ab9eaddc9a01a397edd7 ↗
- https://git.kernel.org/stable/c/ebba4d0aeba0e8eb3a9676380fc2652de8ab1c44 ↗
- https://git.kernel.org/stable/c/151eb52f8712017c8f7b00bb2305e8916cb9e3dc ↗
- https://git.kernel.org/stable/c/bf38be01d43c4e4ca903aff7236d8486a950a252 ↗
- https://git.kernel.org/stable/c/f0efafcdf6eec1f3361bfd8c811420198f55c8bb ↗
- https://git.kernel.org/stable/c/d21808328225ab8cee46885bf9a0dffcefbe630e ↗