diff options
author | John David Anglin <dave.anglin@bell.net> | 2013-04-20 21:41:06 +0200 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2013-04-25 22:36:15 +0200 |
commit | ca0ad83da17b6ba07f9eb5902e69daac90c4fa61 (patch) | |
tree | 70f7a317a22e276721535f652624e2d6c6c3e4dd /arch/parisc/lib/ucmpdi2.c | |
parent | Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc (diff) | |
download | linux-ca0ad83da17b6ba07f9eb5902e69daac90c4fa61.tar.xz linux-ca0ad83da17b6ba07f9eb5902e69daac90c4fa61.zip |
parisc: Provide __ucmpdi2 to resolve undefined references in 32 bit builds.
The Debian experimental linux source package (3.8.5-1) build fails
with the following errors:
...
MODPOST 2016 modules
ERROR: "__ucmpdi2" [fs/btrfs/btrfs.ko] undefined!
ERROR: "__ucmpdi2" [drivers/md/dm-verity.ko] undefined!
The attached patch resolves this problem. It is based on the s390
implementation of ucmpdi2.c.
Signed-off-by: John David Anglin <dave.anglin@bell.net>
Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to '')
-rw-r--r-- | arch/parisc/lib/ucmpdi2.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/parisc/lib/ucmpdi2.c b/arch/parisc/lib/ucmpdi2.c new file mode 100644 index 000000000000..149c016f32c5 --- /dev/null +++ b/arch/parisc/lib/ucmpdi2.c @@ -0,0 +1,25 @@ +#include <linux/module.h> + +union ull_union { + unsigned long long ull; + struct { + unsigned int high; + unsigned int low; + } ui; +}; + +int __ucmpdi2(unsigned long long a, unsigned long long b) +{ + union ull_union au = {.ull = a}; + union ull_union bu = {.ull = b}; + + if (au.ui.high < bu.ui.high) + return 0; + else if (au.ui.high > bu.ui.high) + return 2; + if (au.ui.low < bu.ui.low) + return 0; + else if (au.ui.low > bu.ui.low) + return 2; + return 1; +} |