diff options
| author | Heinrich Schuchardt <[email protected]> | 2026-05-16 20:37:00 +0200 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2026-05-27 17:59:12 -0600 |
| commit | 7af4196d9e9beaae6a69586cd87bd861b7fc2cda (patch) | |
| tree | ca9ab996ee5cde51676ed66ca8346c81072b8791 /fs | |
| parent | 746a986fe247fc0b3d52ad7ae7027e0a6d57d12c (diff) | |
fs: fat: fix seconds in timestamp
The FAT time format stores seconds/2 in bits 4:0. The expression
'tm.tm_sec > 1' is a boolean comparison (yields 0 or 1) where a
right-shift 'tm.tm_sec >> 1' was intended. As a result every
file timestamp written by U-Boot has its seconds field set to
either 0 or 1, depending on whether tm_sec is greater than 1.
Also fix the indentation of the tm_hour line.
Fixes: ba23c378c544 ("fs: fat: fill creation and change date")
Signed-off-by: Heinrich Schuchardt <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
Diffstat (limited to 'fs')
| -rw-r--r-- | fs/fat/fat_write.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c index c98b530f747..a1d28b4e305 100644 --- a/fs/fat/fat_write.c +++ b/fs/fat/fat_write.c @@ -1175,9 +1175,9 @@ static void dentry_set_time(dir_entry *dentptr) date = (tm.tm_mday & 0x1f) | ((tm.tm_mon & 0xf) << 5) | ((tm.tm_year - 1980) << 9); - time = (tm.tm_sec > 1) | + time = (tm.tm_sec >> 1) | ((tm.tm_min & 0x3f) << 5) | - (tm.tm_hour << 11); + (tm.tm_hour << 11); dentptr->date = date; dentptr->time = time; return; |
