make ARCH=i386 allyesconfig gave bellow errors:

   drivers/built-in.o: In function `kiblnd_create_conn':
>> (.text+0x1a74425): undefined reference to `__umoddi3'

Reported-by: Wu Fengguang <fengguang...@intel.com>
Signed-off-by: Peng Tao <tao.p...@emc.com>
---
 .../staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c    |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c 
b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
index 221d373..29a9794 100644
--- a/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
+++ b/drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c
@@ -39,6 +39,7 @@
  */
 
 #include "o2iblnd.h"
+#include <asm/div64.h>
 
 lnd_t the_o2iblnd = {
        .lnd_type       = O2IBLND,
@@ -694,6 +695,7 @@ kiblnd_get_completion_vector(kib_conn_t *conn, int cpt)
        int             vectors;
        int             off;
        int             i;
+       lnet_nid_t      nid = conn->ibc_peer->ibp_nid;
 
        vectors = conn->ibc_cmid->device->num_comp_vectors;
        if (vectors <= 1)
@@ -702,7 +704,7 @@ kiblnd_get_completion_vector(kib_conn_t *conn, int cpt)
        mask = cfs_cpt_cpumask(lnet_cpt_table(), cpt);
 
        /* hash NID to CPU id in this partition... */
-       off = conn->ibc_peer->ibp_nid % cpus_weight(*mask);
+       off = do_div(nid, cpus_weight(*mask));
        for_each_cpu_mask(i, *mask) {
                if (off-- == 0)
                        return i % vectors;
-- 
1.7.1

_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to