[uboot-tools] add patch going upstream to deal with build failure

Dennis Gilmore ausil at fedoraproject.org
Thu Nov 27 06:57:27 UTC 2014


commit 4977952a73449674887c2d0150099344d6b27d0c
Author: Dennis Gilmore <dennis at ausil.us>
Date:   Thu Nov 27 00:55:20 2014 -0600

    add patch going upstream to deal with build failure

 0014-do-no-ue-msoft-float-on-arm.patch             |   25 ----
 ...4fs.c-fs-fs.c-fs-fat-fat_write.c-Adjust-6.patch |  138 ++++++++++++++++++++
 uboot-tools.spec                                   |    2 +-
 3 files changed, 139 insertions(+), 26 deletions(-)
---
diff --git a/0014-fs-ext4-ext4fs.c-fs-fs.c-fs-fat-fat_write.c-Adjust-6.patch b/0014-fs-ext4-ext4fs.c-fs-fs.c-fs-fat-fat_write.c-Adjust-6.patch
new file mode 100644
index 0000000..59db278
--- /dev/null
+++ b/0014-fs-ext4-ext4fs.c-fs-fs.c-fs-fat-fat_write.c-Adjust-6.patch
@@ -0,0 +1,138 @@
+From fc2cae3b4c2046da72c9f46a600b4f44c68a7976 Mon Sep 17 00:00:00 2001
+From: Tom Rini <trini at ti.com>
+Date: Wed, 26 Nov 2014 17:03:48 -0500
+Subject: [PATCH 14/14] fs/ext4/ext4fs.c, fs/fs.c fs/fat/fat_write.c: Adjust
+ 64bit math methods
+
+The changes to introduce loff_t into filesize means that we need to do
+64bit math on 32bit platforms.  Make sure we use the right wrappers for
+these operations.
+
+Cc: Daniel Schwierzeck <daniel.schwierzeck at gmail.com>
+Cc: Suriyan Ramasami <suriyan.r at gmail.com>
+Cc: Simon Glass <sjg at chromium.org>
+Signed-off-by: Tom Rini <trini at ti.com>
+---
+ fs/ext4/ext4fs.c   | 11 ++++++-----
+ fs/fat/fat_write.c | 10 ++++++----
+ fs/fs.c            |  6 ++++--
+ 3 files changed, 16 insertions(+), 11 deletions(-)
+
+diff --git a/fs/ext4/ext4fs.c b/fs/ext4/ext4fs.c
+index 943b5bc..258b937 100644
+--- a/fs/ext4/ext4fs.c
++++ b/fs/ext4/ext4fs.c
+@@ -25,6 +25,7 @@
+ #include <ext_common.h>
+ #include <ext4fs.h>
+ #include "ext4_common.h"
++#include <div64.h>
+ 
+ int ext4fs_symlinknest;
+ struct ext_filesystem ext_fs;
+@@ -67,11 +68,11 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
+ 	if (len > filesize)
+ 		len = filesize;
+ 
+-	blockcnt = ((len + pos) + blocksize - 1) / blocksize;
++	blockcnt = lldiv(((len + pos) + blocksize - 1), blocksize);
+ 
+-	for (i = pos / blocksize; i < blockcnt; i++) {
++	for (i = lldiv(pos, blocksize); i < blockcnt; i++) {
+ 		lbaint_t blknr;
+-		int blockoff = pos % blocksize;
++		int blockoff = pos - (blocksize * i);
+ 		int blockend = blocksize;
+ 		int skipfirst = 0;
+ 		blknr = read_allocated_block(&(node->inode), i);
+@@ -82,7 +83,7 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
+ 
+ 		/* Last block.  */
+ 		if (i == blockcnt - 1) {
+-			blockend = (len + pos) % blocksize;
++			blockend = (len + pos) - (blocksize * i);
+ 
+ 			/* The last portion is exactly blocksize. */
+ 			if (!blockend)
+@@ -90,7 +91,7 @@ int ext4fs_read_file(struct ext2fs_node *node, loff_t pos,
+ 		}
+ 
+ 		/* First block. */
+-		if (i == pos / blocksize) {
++		if (i == lldiv(pos, blocksize)) {
+ 			skipfirst = blockoff;
+ 			blockend -= skipfirst;
+ 		}
+diff --git a/fs/fat/fat_write.c b/fs/fat/fat_write.c
+index 88dd495..473723b 100644
+--- a/fs/fat/fat_write.c
++++ b/fs/fat/fat_write.c
+@@ -13,6 +13,8 @@
+ #include <asm/byteorder.h>
+ #include <part.h>
+ #include <linux/ctype.h>
++#include <div64.h>
++#include <linux/math64.h>
+ #include "fat.c"
+ 
+ static void uppercase(char *str, int len)
+@@ -770,7 +772,7 @@ static void fill_dentry(fsdata *mydata, dir_entry *dentptr,
+  */
+ static int check_overflow(fsdata *mydata, __u32 clustnum, loff_t size)
+ {
+-	__u32 startsect, sect_num;
++	__u32 startsect, sect_num, offset;
+ 
+ 	if (clustnum > 0) {
+ 		startsect = mydata->data_begin +
+@@ -779,13 +781,13 @@ static int check_overflow(fsdata *mydata, __u32 clustnum, loff_t size)
+ 		startsect = mydata->rootdir_sect;
+ 	}
+ 
+-	sect_num = size / mydata->sect_size;
+-	if (size % mydata->sect_size)
++	sect_num = div_u64_rem(size, mydata->sect_size, &offset);
++	
++	if (offset != 0)
+ 		sect_num++;
+ 
+ 	if (startsect + sect_num > cur_part_info.start + total_sector)
+ 		return -1;
+-
+ 	return 0;
+ }
+ 
+diff --git a/fs/fs.c b/fs/fs.c
+index 3da7860..ddd751c 100644
+--- a/fs/fs.c
++++ b/fs/fs.c
+@@ -23,6 +23,8 @@
+ #include <fs.h>
+ #include <sandboxfs.h>
+ #include <asm/io.h>
++#include <div64.h>
++#include <linux/math64.h>
+ 
+ DECLARE_GLOBAL_DATA_PTR;
+ 
+@@ -399,7 +401,7 @@ int do_load(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
+ 	printf("%llu bytes read in %lu ms", len_read, time);
+ 	if (time > 0) {
+ 		puts(" (");
+-		print_size(len_read / time * 1000, "/s");
++		print_size(div_u64(len_read, time) * 1000, "/s");
+ 		puts(")");
+ 	}
+ 	puts("\n");
+@@ -469,7 +471,7 @@ int do_save(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[],
+ 	printf("%llu bytes written in %lu ms", len, time);
+ 	if (time > 0) {
+ 		puts(" (");
+-		print_size(len / time * 1000, "/s");
++		print_size(div_u64(len, time) * 1000, "/s");
+ 		puts(")");
+ 	}
+ 	puts("\n");
+-- 
+2.1.0
+
diff --git a/uboot-tools.spec b/uboot-tools.spec
index a58c103..dd45d56 100644
--- a/uboot-tools.spec
+++ b/uboot-tools.spec
@@ -23,7 +23,7 @@ Patch10: 0010-port-utilite-to-distro-generic-boot-commands.patch
 Patch11: 0011-add-back-adding-console-to-the-bootargs-if-not-prese.patch
 Patch12: 0012-wandboard-port-to-generic-distro-booting.patch
 Patch13: 0013-Switch-omap4-boards-to-use-config_distro_defaults-an.patch
-Patch14: 0014-do-no-ue-msoft-float-on-arm.patch
+Patch14: 0014-fs-ext4-ext4fs.c-fs-fs.c-fs-fat-fat_write.c-Adjust-6.patch
 
 BuildRequires:  dtc, openssl-devel
 BuildRequires:  fedora-logos, netpbm-progs


More information about the scm-commits mailing list