summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorHeinrich Schuchardt <[email protected]>2026-05-16 20:37:00 +0200
committerTom Rini <[email protected]>2026-05-27 17:59:12 -0600
commit7af4196d9e9beaae6a69586cd87bd861b7fc2cda (patch)
treeca9ab996ee5cde51676ed66ca8346c81072b8791 /fs
parent746a986fe247fc0b3d52ad7ae7027e0a6d57d12c (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.c4
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;