diff mbox series

[U-Boot,v2,1/1] fs: fat: avoid superfluous conversion calling set_cluster

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

Commit Message

Heinrich Schuchardt Feb. 14, 2018, 6:14 p.m. UTC
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(-)

Comments

Tom Rini Feb. 23, 2018, 3:40 p.m. UTC | #1
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 mbox series

Patch

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;
 		}