fs: fat: fix wrong casting to unsigned value of sect_to_cluster()
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Mon, 4 Jun 2018 11:45:54 +0000 (20:45 +0900)
committerTom Rini <trini@konsulko.com>
Wed, 13 Jun 2018 11:49:11 +0000 (07:49 -0400)
After the commit 265edc03d5a1 ("fs/fat: Clean up open-coded sector
<-> cluster conversions"), it is hung up writing new file to FAT16
disk with more than 19 files in armv7. It is because result value
of sect_to_cluster() is not proper by casting from signed value to
unsigned value. Fix the wrong casting of sect_to_cluster().

Reported-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Reviewed-by: Lukasz Majewski <lukma@denx.de>
include/fat.h

index 7dada411e54fcefcac19398edd673857a74c642c..09e14236858571c2e6dc4cbe2b2e800e4a03ee03 100644 (file)
@@ -180,7 +180,7 @@ static inline u32 clust_to_sect(fsdata *fsdata, u32 clust)
        return fsdata->data_begin + clust * fsdata->clust_size;
 }
 
-static inline u32 sect_to_clust(fsdata *fsdata, u32 sect)
+static inline u32 sect_to_clust(fsdata *fsdata, int sect)
 {
        return (sect - fsdata->data_begin) / fsdata->clust_size;
 }