tangled
alpha
login
or
join now
tjh.dev
/
kernel
Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1
fork
atom
overview
issues
pulls
pipelines
Merge branches 'ipoib', 'mlx4' and 'nes' into for-linus
Roland Dreier
17 years ago
7e2c2328
e8224e4b
+18
-13
4 changed files
expand all
collapse all
unified
split
drivers
infiniband
hw
mlx4
qp.c
nes
nes_cm.c
net
mlx4
mr.c
include
linux
mlx4
device.h
+6
drivers/infiniband/hw/mlx4/qp.c
···
1342
1342
static void set_fmr_seg(struct mlx4_wqe_fmr_seg *fseg, struct ib_send_wr *wr)
1343
1343
{
1344
1344
struct mlx4_ib_fast_reg_page_list *mfrpl = to_mfrpl(wr->wr.fast_reg.page_list);
1345
1345
+
int i;
1346
1346
+
1347
1347
+
for (i = 0; i < wr->wr.fast_reg.page_list_len; ++i)
1348
1348
+
wr->wr.fast_reg.page_list->page_list[i] =
1349
1349
+
cpu_to_be64(wr->wr.fast_reg.page_list->page_list[i] |
1350
1350
+
MLX4_MTT_FLAG_PRESENT);
1345
1351
1346
1352
fseg->flags = convert_access(wr->wr.fast_reg.access_flags);
1347
1353
fseg->mem_key = cpu_to_be32(wr->wr.fast_reg.rkey);
+2
-9
drivers/infiniband/hw/nes/nes_cm.c
···
1956
1956
return ret;
1957
1957
cleanup_retrans_entry(cm_node);
1958
1958
cm_node->state = NES_CM_STATE_CLOSED;
1959
1959
-
ret = send_fin(cm_node, NULL);
1960
1960
-
1961
1961
-
if (cm_node->accept_pend) {
1962
1962
-
BUG_ON(!cm_node->listener);
1963
1963
-
atomic_dec(&cm_node->listener->pend_accepts_cnt);
1964
1964
-
BUG_ON(atomic_read(&cm_node->listener->pend_accepts_cnt) < 0);
1965
1965
-
}
1966
1959
1967
1960
ret = send_reset(cm_node, NULL);
1968
1961
return ret;
···
2376
2383
atomic_inc(&cm_disconnects);
2377
2384
cm_event.event = IW_CM_EVENT_DISCONNECT;
2378
2385
if (last_ae == NES_AEQE_AEID_LLP_CONNECTION_RESET) {
2386
2386
+
issued_disconnect_reset = 1;
2379
2387
cm_event.status = IW_CM_EVENT_STATUS_RESET;
2380
2388
nes_debug(NES_DBG_CM, "Generating a CM "
2381
2389
"Disconnect Event (status reset) for "
···
2502
2508
nes_debug(NES_DBG_CM, "Call close API\n");
2503
2509
2504
2510
g_cm_core->api->close(g_cm_core, nesqp->cm_node);
2505
2505
-
nesqp->cm_node = NULL;
2506
2511
}
2507
2512
2508
2513
return ret;
···
2830
2837
cm_node->apbvt_set = 1;
2831
2838
nesqp->cm_node = cm_node;
2832
2839
cm_node->nesqp = nesqp;
2840
2840
+
nes_add_ref(&nesqp->ibqp);
2833
2841
2834
2842
return 0;
2835
2843
}
···
3161
3167
if (ret)
3162
3168
printk(KERN_ERR "%s[%u] OFA CM event_handler returned, "
3163
3169
"ret=%d\n", __func__, __LINE__, ret);
3164
3164
-
nes_rem_ref(&nesqp->ibqp);
3165
3170
cm_id->rem_ref(cm_id);
3166
3171
3167
3172
rem_ref_cm_node(event->cm_node->cm_core, event->cm_node);
+6
-4
drivers/net/mlx4/mr.c
···
67
67
#define MLX4_MPT_FLAG_PHYSICAL (1 << 9)
68
68
#define MLX4_MPT_FLAG_REGION (1 << 8)
69
69
70
70
-
#define MLX4_MPT_PD_FLAG_FAST_REG (1 << 26)
70
70
+
#define MLX4_MPT_PD_FLAG_FAST_REG (1 << 27)
71
71
+
#define MLX4_MPT_PD_FLAG_RAE (1 << 28)
71
72
#define MLX4_MPT_PD_FLAG_EN_INV (3 << 24)
72
72
-
73
73
-
#define MLX4_MTT_FLAG_PRESENT 1
74
73
75
74
#define MLX4_MPT_STATUS_SW 0xF0
76
75
#define MLX4_MPT_STATUS_HW 0x00
···
347
348
if (mr->mtt.order >= 0 && mr->mtt.page_shift == 0) {
348
349
/* fast register MR in free state */
349
350
mpt_entry->flags |= cpu_to_be32(MLX4_MPT_FLAG_FREE);
350
350
-
mpt_entry->pd_flags |= cpu_to_be32(MLX4_MPT_PD_FLAG_FAST_REG);
351
351
+
mpt_entry->pd_flags |= cpu_to_be32(MLX4_MPT_PD_FLAG_FAST_REG |
352
352
+
MLX4_MPT_PD_FLAG_RAE);
353
353
+
mpt_entry->mtt_sz = cpu_to_be32((1 << mr->mtt.order) *
354
354
+
MLX4_MTT_ENTRY_PER_SEG);
351
355
} else {
352
356
mpt_entry->flags |= cpu_to_be32(MLX4_MPT_FLAG_SW_OWNS);
353
357
}
+4
include/linux/mlx4/device.h
···
141
141
MLX4_STAT_RATE_OFFSET = 5
142
142
};
143
143
144
144
+
enum {
145
145
+
MLX4_MTT_FLAG_PRESENT = 1
146
146
+
};
147
147
+
144
148
static inline u64 mlx4_fw_ver(u64 major, u64 minor, u64 subminor)
145
149
{
146
150
return (major << 32) | (minor << 16) | subminor;