Message ID | 20180214181443.1926-1-xypron.glpk@gmx.de |
---|---|
State | Changes Requested |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot,v2,1/1] fs: fat: avoid superfluous conversion calling set_cluster | expand |
On Wed, Feb 14, 2018 at 07:14:43PM +0100, Heinrich Schuchardt wrote: > Parameter size of function set_cluster is of type unsigned long. It makes > no sense to convert actsize to int before passing it to set_cluster as > size. Let's use loff_t as type of parameter size to avoid any conversion. > > Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> > --- > v2 > change type of parameter size > --- > fs/fat/fat_write.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c > index 2b753df2820..270b2908acd 100644 > --- a/fs/fat/fat_write.c > +++ b/fs/fat/fat_write.c > @@ -494,8 +494,7 @@ static __u32 determine_fatent(fsdata *mydata, __u32 entry) > * Return 0 on success, -1 otherwise. > */ > static int > -set_cluster(fsdata *mydata, __u32 clustnum, __u8 *buffer, > - unsigned long size) > +set_cluster(fsdata *mydata, __u32 clustnum, __u8 *buffer, loff_t size) > { > __u32 idx = 0; > __u32 startsect; > @@ -679,7 +678,7 @@ set_contents(fsdata *mydata, dir_entry *dentptr, __u8 *buffer, > > /* set remaining bytes */ > actsize = filesize; > - if (set_cluster(mydata, curclust, buffer, (int)actsize) != 0) { > + if (set_cluster(mydata, curclust, buffer, actsize) != 0) { > debug("error: writing cluster\n"); > return -1; > } > @@ -696,7 +695,7 @@ set_contents(fsdata *mydata, dir_entry *dentptr, __u8 *buffer, > > return 0; > getit: > - if (set_cluster(mydata, curclust, buffer, (int)actsize) != 0) { > + if (set_cluster(mydata, curclust, buffer, actsize) != 0) { > debug("error: writing cluster\n"); > return -1; > } So, this introduces a bunch of build issues when using certain toolchains (such as Debian's arm-linux-gnueabihf): arm: + display5 +(display5) fs/built-in.o: In function `get_cluster': +(display5) build/../fs/fat/fat.c:278: undefined reference to `__aeabi_ldivmod' +(display5) arm-linux-gnueabihf-ld.bfd: BFD (GNU Binutils for Debian) 2.28 assertion fail ../../bfd/elf32-arm.c:9514 +(display5) make[1]: *** [u-boot] Error 1 +(display5) make: *** [sub-make] Error 2
diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c index 2b753df2820..270b2908acd 100644 --- a/fs/fat/fat_write.c +++ b/fs/fat/fat_write.c @@ -494,8 +494,7 @@ static __u32 determine_fatent(fsdata *mydata, __u32 entry) * Return 0 on success, -1 otherwise. */ static int -set_cluster(fsdata *mydata, __u32 clustnum, __u8 *buffer, - unsigned long size) +set_cluster(fsdata *mydata, __u32 clustnum, __u8 *buffer, loff_t size) { __u32 idx = 0; __u32 startsect; @@ -679,7 +678,7 @@ set_contents(fsdata *mydata, dir_entry *dentptr, __u8 *buffer, /* set remaining bytes */ actsize = filesize; - if (set_cluster(mydata, curclust, buffer, (int)actsize) != 0) { + if (set_cluster(mydata, curclust, buffer, actsize) != 0) { debug("error: writing cluster\n"); return -1; } @@ -696,7 +695,7 @@ set_contents(fsdata *mydata, dir_entry *dentptr, __u8 *buffer, return 0; getit: - if (set_cluster(mydata, curclust, buffer, (int)actsize) != 0) { + if (set_cluster(mydata, curclust, buffer, actsize) != 0) { debug("error: writing cluster\n"); return -1; }
Parameter size of function set_cluster is of type unsigned long. It makes no sense to convert actsize to int before passing it to set_cluster as size. Let's use loff_t as type of parameter size to avoid any conversion. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> --- v2 change type of parameter size --- fs/fat/fat_write.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-)