Skip to contentSkip to conversation

linux-next build failure on m68k in nfs code

DISCUSSION Paul Gortmaker 2 participants 2 messages May 29, 2014 Linux-next tree

lore
Share & tools
lore
#0 lore raw

Hi Trond,

I'm seeing this on today's linux-next with m68k allmodconfig:

ERROR: "__umoddi3" [fs/nfs/nfs_layout_nfsv41_files.ko] undefined! make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2

Making this obviously incorrect change makes it go away:

        /* calculate remaining bytes in the current stripe */

- stripe_offset = ((u64)req_offset(req) - segment_offset) % stripe_unit;
+ stripe_offset = 0; // ((u64)req_offset(req) - segment_offset) % stripe_unit;

The line above comes from:

commit fa1165eda0eeaee57c292df3af1c98e10223f0f5

Author: Weston Andros Adamson <[email protected]>
Date:   Thu May 15 11:56:56 2014 -0400

pnfs: filelayout: support non page aligned layouts

Looks like it needs to use the proper 64bit math wrappers.

Thanks,
Paul.

#1 lore raw

Hi Paul

Quoted 18 lines · Paul Gortmaker

Hi Trond,

I'm seeing this on today's linux-next with m68k allmodconfig:

ERROR: "__umoddi3" [fs/nfs/nfs_layout_nfsv41_files.ko] undefined! make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2

Making this obviously incorrect change makes it go away:

        /* calculate remaining bytes in the current stripe */
(quoted diff) +1 -1
-       stripe_offset = ((u64)req_offset(req) - segment_offset) % stripe_unit;
+       stripe_offset = 0; // ((u64)req_offset(req) - segment_offset) % stripe_unit;

The line above comes from:

Quoted 7 lines

commit fa1165eda0eeaee57c292df3af1c98e10223f0f5

Author: Weston Andros Adamson <[email protected]>
Date:   Thu May 15 11:56:56 2014 -0400

pnfs: filelayout: support non page aligned layouts

Looks like it needs to use the proper 64bit math wrappers.

Yes. I already fixed up patch this morning in my linux-next branch, so I'm hoping it will be OK the next time you pull from Stephen's tree.

For the record, the correct fix should be to replace the above line with

div_u64_rem((u64)req_offset(req) - segment_offset, stripe_unit, &stripe_offset);

Thanks
Trond

Signature · 5 lines
Trond Myklebust

Linux NFS client maintainer, PrimaryData

[email protected]