]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
staging/lustre/lnet: fix build error on i386
authorPeng Tao <bergwolf@gmail.com>
Fri, 7 Jun 2013 14:07:21 +0000 (22:07 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 9 Jun 2013 05:21:01 +0000 (22:21 -0700)
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.wu@intel.com>
Signed-off-by: Peng Tao <tao.peng@emc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lnet/klnds/o2iblnd/o2iblnd.c

index 221d37311caea1d650c8a470ac117829c7d24e40..29a97943e4c7633c6d869b852378fcd1ffb43f6f 100644 (file)
@@ -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;