-/* -*- mode: c; c-basic-offset: 8; indent-tabs-mode: nil; -*-
- * vim:expandtab:shiftwidth=8:tabstop=8:
- *
+/*
* GPL HEADER START
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
/*
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright (c) 2011, Whamcloud, Inc.
*/
/*
* This file is part of Lustre, http://www.lustre.org/
fps->fps_version ++;
cfs_list_add_tail(&fpo->fpo_list, &fps->fps_pool_list);
} else {
- fps->fps_next_retry = cfs_time_shift(10);
+ fps->fps_next_retry = cfs_time_shift(IBLND_POOL_RETRY);
}
cfs_spin_unlock(&fps->fps_lock);
if (rc == 0) {
cfs_list_add_tail(&pool->po_list, &ps->ps_pool_list);
} else {
- /* retry 10 seconds later */
- ps->ps_next_retry = cfs_time_shift(10);
+ ps->ps_next_retry = cfs_time_shift(IBLND_POOL_RETRY);
CERROR("Can't allocate new %s pool because out of memory\n",
ps->ps_name);
}
return rc;
}
-#ifdef HAVE_OFED_TRANSPORT_IWARP
- /* XXX We can't trust this value returned by Chelsio driver, it's wrong
- * and we have reported the bug, remove these in the future when Chelsio
- * bug got fixed. */
- if (rdma_node_get_transport(hdev->ibh_ibdev->node_type) ==
- RDMA_TRANSPORT_IWARP)
- hdev->ibh_mr_size = (1ULL << 32) - 1;
-#endif
-
if (hdev->ibh_mr_size == ~0ULL) {
hdev->ibh_mr_shift = 64;
return 0;
}
out:
- CDEBUG(D_CONSOLE, "Register global MR array, MR size: "
- LPX64", array size: %d\n",
- hdev->ibh_mr_size, hdev->ibh_nmrs);
+ if (hdev->ibh_mr_size != ~0ULL || hdev->ibh_nmrs != 1)
+ LCONSOLE_INFO("Register global MR array, MR size: "
+ LPX64", array size: %d\n",
+ hdev->ibh_mr_size, hdev->ibh_nmrs);
return 0;
}
*
* a. rdma_bind_addr(), it will conflict with listener cmid
* b. rdma_resolve_addr() to zero addr */
- cmid = rdma_create_id(kiblnd_dummy_callback,
- dev, RDMA_PS_TCP);
+ cmid = kiblnd_rdma_create_id(kiblnd_dummy_callback, dev, RDMA_PS_TCP,
+ IB_QPT_RC);
if (IS_ERR(cmid)) {
rc = PTR_ERR(cmid);
CERROR("Failed to create cmid for failover: %d\n", rc);
rdma_destroy_id(cmid);
}
- cmid = rdma_create_id(kiblnd_cm_callback, dev, RDMA_PS_TCP);
+ cmid = kiblnd_rdma_create_id(kiblnd_cm_callback, dev, RDMA_PS_TCP,
+ IB_QPT_RC);
if (IS_ERR(cmid)) {
rc = PTR_ERR(cmid);
CERROR("Failed to create cmid for failover: %d\n", rc);
memset(dev, 0, sizeof(*dev));
#ifdef HAVE_DEV_GET_BY_NAME_2ARG
- if ((netdev = dev_get_by_name(&init_net, ifname)) == NULL) {
+ netdev = dev_get_by_name(&init_net, ifname);
#else
- if ((netdev = dev_get_by_name(ifname)) == NULL) {
+ netdev = dev_get_by_name(ifname);
#endif
- CERROR("Can't find netdev of IF: %s\n", ifname);
- LIBCFS_FREE(dev, sizeof(*dev));
- return NULL;
+ if (netdev == NULL) {
+ dev->ibd_can_failover = 0;
+ } else {
+ dev->ibd_can_failover = !!(netdev->flags & IFF_MASTER);
+ dev_put(netdev);
}
- dev->ibd_can_failover = !!(netdev->flags & IFF_MASTER);
- dev_put(netdev);
-
CFS_INIT_LIST_HEAD(&dev->ibd_nets);
CFS_INIT_LIST_HEAD(&dev->ibd_list); /* not yet in kib_devs */
CFS_INIT_LIST_HEAD(&dev->ibd_fail_list);