[Top] [All Lists]

Re: new 64 bit math link fail in xfs in linux-next today

To: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx>
Subject: Re: new 64 bit math link fail in xfs in linux-next today
From: Mark Tinguely <tinguely@xxxxxxx>
Date: Wed, 16 Apr 2014 15:59:51 -0500
Cc: Dave Chinner <david@xxxxxxxxxxxxx>, "linux-next@xxxxxxxxxxxxxxx" <linux-next@xxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <534EAB41.60901@xxxxxxxxxxxxx>
References: <534EAB41.60901@xxxxxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0
On 04/16/14 11:09, Paul Gortmaker wrote:
Hi Dave,

Not sure if this has been reported yet, but this new failure showed
up in the xtensa link of today's linux-next builds.



Try this works on i386. sorry if my mailer wraps the line:

The roundup in commit 68c1fb5d should be a roundup_64()
because it is desired to round a 64 bit type by an integer
and that will result in a 64 bit value. On 32 bit machines
using roundup() in this case will result in the error:

 ERROR: "__divdi3" [fs/xfs/xfs.ko] undefined!

Signed-off-by: Mark Tinguely <tinguely@xxxxxxx>
 fs/xfs/xfs_aops.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: b/fs/xfs/xfs_aops.c
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -1365,7 +1365,7 @@ __xfs_get_blocks(
                if (offset < i_size_read(inode) &&
                    offset + mapping_size >= i_size_read(inode)) {
                        /* limit mapping to block that spans EOF */
-                       mapping_size = roundup(i_size_read(inode) - offset,
+                       mapping_size = roundup_64(i_size_read(inode) - offset,
                                               1 << inode->i_blkbits);
                if (mapping_size > LONG_MAX)

<Prev in Thread] Current Thread [Next in Thread>