diff options
Diffstat (limited to 'drivers/infiniband/hw/ipath')
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_cq.c | 2 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_file_ops.c | 2 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_iba7220.c | 4 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_mad.c | 6 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_rc.c | 4 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_ruc.c | 4 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_uc.c | 8 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_ud.c | 8 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_verbs.c | 4 | ||||
-rw-r--r-- | drivers/infiniband/hw/ipath/ipath_verbs_mcast.c | 3 |
10 files changed, 24 insertions, 21 deletions
diff --git a/drivers/infiniband/hw/ipath/ipath_cq.c b/drivers/infiniband/hw/ipath/ipath_cq.c index a03bd28d9b4..d385e4168c9 100644 --- a/drivers/infiniband/hw/ipath/ipath_cq.c +++ b/drivers/infiniband/hw/ipath/ipath_cq.c | |||
@@ -82,7 +82,7 @@ void ipath_cq_enter(struct ipath_cq *cq, struct ib_wc *entry, int solicited) | |||
82 | wc->uqueue[head].opcode = entry->opcode; | 82 | wc->uqueue[head].opcode = entry->opcode; |
83 | wc->uqueue[head].vendor_err = entry->vendor_err; | 83 | wc->uqueue[head].vendor_err = entry->vendor_err; |
84 | wc->uqueue[head].byte_len = entry->byte_len; | 84 | wc->uqueue[head].byte_len = entry->byte_len; |
85 | wc->uqueue[head].imm_data = (__u32 __force)entry->imm_data; | 85 | wc->uqueue[head].ex.imm_data = (__u32 __force) entry->ex.imm_data; |
86 | wc->uqueue[head].qp_num = entry->qp->qp_num; | 86 | wc->uqueue[head].qp_num = entry->qp->qp_num; |
87 | wc->uqueue[head].src_qp = entry->src_qp; | 87 | wc->uqueue[head].src_qp = entry->src_qp; |
88 | wc->uqueue[head].wc_flags = entry->wc_flags; | 88 | wc->uqueue[head].wc_flags = entry->wc_flags; |
diff --git a/drivers/infiniband/hw/ipath/ipath_file_ops.c b/drivers/infiniband/hw/ipath/ipath_file_ops.c index b472b15637f..35f301c88b5 100644 --- a/drivers/infiniband/hw/ipath/ipath_file_ops.c +++ b/drivers/infiniband/hw/ipath/ipath_file_ops.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include <linux/highmem.h> | 39 | #include <linux/highmem.h> |
40 | #include <linux/io.h> | 40 | #include <linux/io.h> |
41 | #include <linux/jiffies.h> | 41 | #include <linux/jiffies.h> |
42 | #include <linux/smp_lock.h> | ||
42 | #include <asm/pgtable.h> | 43 | #include <asm/pgtable.h> |
43 | 44 | ||
44 | #include "ipath_kernel.h" | 45 | #include "ipath_kernel.h" |
@@ -1815,6 +1816,7 @@ done: | |||
1815 | static int ipath_open(struct inode *in, struct file *fp) | 1816 | static int ipath_open(struct inode *in, struct file *fp) |
1816 | { | 1817 | { |
1817 | /* The real work is performed later in ipath_assign_port() */ | 1818 | /* The real work is performed later in ipath_assign_port() */ |
1819 | cycle_kernel_lock(); | ||
1818 | fp->private_data = kzalloc(sizeof(struct ipath_filedata), GFP_KERNEL); | 1820 | fp->private_data = kzalloc(sizeof(struct ipath_filedata), GFP_KERNEL); |
1819 | return fp->private_data ? 0 : -ENOMEM; | 1821 | return fp->private_data ? 0 : -ENOMEM; |
1820 | } | 1822 | } |
diff --git a/drivers/infiniband/hw/ipath/ipath_iba7220.c b/drivers/infiniband/hw/ipath/ipath_iba7220.c index 8eee7830f04..fb70712ac85 100644 --- a/drivers/infiniband/hw/ipath/ipath_iba7220.c +++ b/drivers/infiniband/hw/ipath/ipath_iba7220.c | |||
@@ -2228,8 +2228,8 @@ static void ipath_autoneg_send(struct ipath_devdata *dd, int which) | |||
2228 | 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, | 2228 | 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, |
2229 | 0x40000001, 0x1388, 0x15e, /* rest 0's */ | 2229 | 0x40000001, 0x1388, 0x15e, /* rest 0's */ |
2230 | }; | 2230 | }; |
2231 | dcnt = sizeof(madpayload_start)/sizeof(madpayload_start[0]); | 2231 | dcnt = ARRAY_SIZE(madpayload_start); |
2232 | hcnt = sizeof(hdr)/sizeof(hdr[0]); | 2232 | hcnt = ARRAY_SIZE(hdr); |
2233 | if (!swapped) { | 2233 | if (!swapped) { |
2234 | /* for maintainability, do it at runtime */ | 2234 | /* for maintainability, do it at runtime */ |
2235 | for (i = 0; i < hcnt; i++) { | 2235 | for (i = 0; i < hcnt; i++) { |
diff --git a/drivers/infiniband/hw/ipath/ipath_mad.c b/drivers/infiniband/hw/ipath/ipath_mad.c index 5f9315d77a4..be4fc9ada8e 100644 --- a/drivers/infiniband/hw/ipath/ipath_mad.c +++ b/drivers/infiniband/hw/ipath/ipath_mad.c | |||
@@ -111,9 +111,9 @@ static int recv_subn_get_nodeinfo(struct ib_smp *smp, | |||
111 | nip->revision = cpu_to_be32((majrev << 16) | minrev); | 111 | nip->revision = cpu_to_be32((majrev << 16) | minrev); |
112 | nip->local_port_num = port; | 112 | nip->local_port_num = port; |
113 | vendor = dd->ipath_vendorid; | 113 | vendor = dd->ipath_vendorid; |
114 | nip->vendor_id[0] = 0; | 114 | nip->vendor_id[0] = IPATH_SRC_OUI_1; |
115 | nip->vendor_id[1] = vendor >> 8; | 115 | nip->vendor_id[1] = IPATH_SRC_OUI_2; |
116 | nip->vendor_id[2] = vendor; | 116 | nip->vendor_id[2] = IPATH_SRC_OUI_3; |
117 | 117 | ||
118 | return reply(smp); | 118 | return reply(smp); |
119 | } | 119 | } |
diff --git a/drivers/infiniband/hw/ipath/ipath_rc.c b/drivers/infiniband/hw/ipath/ipath_rc.c index 108df667d2e..97710522624 100644 --- a/drivers/infiniband/hw/ipath/ipath_rc.c +++ b/drivers/infiniband/hw/ipath/ipath_rc.c | |||
@@ -1703,11 +1703,11 @@ void ipath_rc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr, | |||
1703 | case OP(SEND_LAST_WITH_IMMEDIATE): | 1703 | case OP(SEND_LAST_WITH_IMMEDIATE): |
1704 | send_last_imm: | 1704 | send_last_imm: |
1705 | if (header_in_data) { | 1705 | if (header_in_data) { |
1706 | wc.imm_data = *(__be32 *) data; | 1706 | wc.ex.imm_data = *(__be32 *) data; |
1707 | data += sizeof(__be32); | 1707 | data += sizeof(__be32); |
1708 | } else { | 1708 | } else { |
1709 | /* Immediate data comes after BTH */ | 1709 | /* Immediate data comes after BTH */ |
1710 | wc.imm_data = ohdr->u.imm_data; | 1710 | wc.ex.imm_data = ohdr->u.imm_data; |
1711 | } | 1711 | } |
1712 | hdrsize += 4; | 1712 | hdrsize += 4; |
1713 | wc.wc_flags = IB_WC_WITH_IMM; | 1713 | wc.wc_flags = IB_WC_WITH_IMM; |
diff --git a/drivers/infiniband/hw/ipath/ipath_ruc.c b/drivers/infiniband/hw/ipath/ipath_ruc.c index a4b5521567f..af051f75766 100644 --- a/drivers/infiniband/hw/ipath/ipath_ruc.c +++ b/drivers/infiniband/hw/ipath/ipath_ruc.c | |||
@@ -331,7 +331,7 @@ again: | |||
331 | switch (wqe->wr.opcode) { | 331 | switch (wqe->wr.opcode) { |
332 | case IB_WR_SEND_WITH_IMM: | 332 | case IB_WR_SEND_WITH_IMM: |
333 | wc.wc_flags = IB_WC_WITH_IMM; | 333 | wc.wc_flags = IB_WC_WITH_IMM; |
334 | wc.imm_data = wqe->wr.ex.imm_data; | 334 | wc.ex.imm_data = wqe->wr.ex.imm_data; |
335 | /* FALLTHROUGH */ | 335 | /* FALLTHROUGH */ |
336 | case IB_WR_SEND: | 336 | case IB_WR_SEND: |
337 | if (!ipath_get_rwqe(qp, 0)) | 337 | if (!ipath_get_rwqe(qp, 0)) |
@@ -342,7 +342,7 @@ again: | |||
342 | if (unlikely(!(qp->qp_access_flags & IB_ACCESS_REMOTE_WRITE))) | 342 | if (unlikely(!(qp->qp_access_flags & IB_ACCESS_REMOTE_WRITE))) |
343 | goto inv_err; | 343 | goto inv_err; |
344 | wc.wc_flags = IB_WC_WITH_IMM; | 344 | wc.wc_flags = IB_WC_WITH_IMM; |
345 | wc.imm_data = wqe->wr.ex.imm_data; | 345 | wc.ex.imm_data = wqe->wr.ex.imm_data; |
346 | if (!ipath_get_rwqe(qp, 1)) | 346 | if (!ipath_get_rwqe(qp, 1)) |
347 | goto rnr_nak; | 347 | goto rnr_nak; |
348 | /* FALLTHROUGH */ | 348 | /* FALLTHROUGH */ |
diff --git a/drivers/infiniband/hw/ipath/ipath_uc.c b/drivers/infiniband/hw/ipath/ipath_uc.c index 0596ec16fcb..82cc588b8bf 100644 --- a/drivers/infiniband/hw/ipath/ipath_uc.c +++ b/drivers/infiniband/hw/ipath/ipath_uc.c | |||
@@ -379,11 +379,11 @@ void ipath_uc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr, | |||
379 | case OP(SEND_LAST_WITH_IMMEDIATE): | 379 | case OP(SEND_LAST_WITH_IMMEDIATE): |
380 | send_last_imm: | 380 | send_last_imm: |
381 | if (header_in_data) { | 381 | if (header_in_data) { |
382 | wc.imm_data = *(__be32 *) data; | 382 | wc.ex.imm_data = *(__be32 *) data; |
383 | data += sizeof(__be32); | 383 | data += sizeof(__be32); |
384 | } else { | 384 | } else { |
385 | /* Immediate data comes after BTH */ | 385 | /* Immediate data comes after BTH */ |
386 | wc.imm_data = ohdr->u.imm_data; | 386 | wc.ex.imm_data = ohdr->u.imm_data; |
387 | } | 387 | } |
388 | hdrsize += 4; | 388 | hdrsize += 4; |
389 | wc.wc_flags = IB_WC_WITH_IMM; | 389 | wc.wc_flags = IB_WC_WITH_IMM; |
@@ -483,11 +483,11 @@ void ipath_uc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr, | |||
483 | case OP(RDMA_WRITE_LAST_WITH_IMMEDIATE): | 483 | case OP(RDMA_WRITE_LAST_WITH_IMMEDIATE): |
484 | rdma_last_imm: | 484 | rdma_last_imm: |
485 | if (header_in_data) { | 485 | if (header_in_data) { |
486 | wc.imm_data = *(__be32 *) data; | 486 | wc.ex.imm_data = *(__be32 *) data; |
487 | data += sizeof(__be32); | 487 | data += sizeof(__be32); |
488 | } else { | 488 | } else { |
489 | /* Immediate data comes after BTH */ | 489 | /* Immediate data comes after BTH */ |
490 | wc.imm_data = ohdr->u.imm_data; | 490 | wc.ex.imm_data = ohdr->u.imm_data; |
491 | } | 491 | } |
492 | hdrsize += 4; | 492 | hdrsize += 4; |
493 | wc.wc_flags = IB_WC_WITH_IMM; | 493 | wc.wc_flags = IB_WC_WITH_IMM; |
diff --git a/drivers/infiniband/hw/ipath/ipath_ud.c b/drivers/infiniband/hw/ipath/ipath_ud.c index 77ca8ca74e7..36aa242c487 100644 --- a/drivers/infiniband/hw/ipath/ipath_ud.c +++ b/drivers/infiniband/hw/ipath/ipath_ud.c | |||
@@ -96,7 +96,7 @@ static void ipath_ud_loopback(struct ipath_qp *sqp, struct ipath_swqe *swqe) | |||
96 | 96 | ||
97 | if (swqe->wr.opcode == IB_WR_SEND_WITH_IMM) { | 97 | if (swqe->wr.opcode == IB_WR_SEND_WITH_IMM) { |
98 | wc.wc_flags = IB_WC_WITH_IMM; | 98 | wc.wc_flags = IB_WC_WITH_IMM; |
99 | wc.imm_data = swqe->wr.ex.imm_data; | 99 | wc.ex.imm_data = swqe->wr.ex.imm_data; |
100 | } | 100 | } |
101 | 101 | ||
102 | /* | 102 | /* |
@@ -492,14 +492,14 @@ void ipath_ud_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr, | |||
492 | if (qp->ibqp.qp_num > 1 && | 492 | if (qp->ibqp.qp_num > 1 && |
493 | opcode == IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE) { | 493 | opcode == IB_OPCODE_UD_SEND_ONLY_WITH_IMMEDIATE) { |
494 | if (header_in_data) { | 494 | if (header_in_data) { |
495 | wc.imm_data = *(__be32 *) data; | 495 | wc.ex.imm_data = *(__be32 *) data; |
496 | data += sizeof(__be32); | 496 | data += sizeof(__be32); |
497 | } else | 497 | } else |
498 | wc.imm_data = ohdr->u.ud.imm_data; | 498 | wc.ex.imm_data = ohdr->u.ud.imm_data; |
499 | wc.wc_flags = IB_WC_WITH_IMM; | 499 | wc.wc_flags = IB_WC_WITH_IMM; |
500 | hdrsize += sizeof(u32); | 500 | hdrsize += sizeof(u32); |
501 | } else if (opcode == IB_OPCODE_UD_SEND_ONLY) { | 501 | } else if (opcode == IB_OPCODE_UD_SEND_ONLY) { |
502 | wc.imm_data = 0; | 502 | wc.ex.imm_data = 0; |
503 | wc.wc_flags = 0; | 503 | wc.wc_flags = 0; |
504 | } else { | 504 | } else { |
505 | dev->n_pkt_drops++; | 505 | dev->n_pkt_drops++; |
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs.c b/drivers/infiniband/hw/ipath/ipath_verbs.c index 7779165b2c2..55c71882882 100644 --- a/drivers/infiniband/hw/ipath/ipath_verbs.c +++ b/drivers/infiniband/hw/ipath/ipath_verbs.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <rdma/ib_user_verbs.h> | 35 | #include <rdma/ib_user_verbs.h> |
36 | #include <linux/io.h> | 36 | #include <linux/io.h> |
37 | #include <linux/utsname.h> | 37 | #include <linux/utsname.h> |
38 | #include <linux/rculist.h> | ||
38 | 39 | ||
39 | #include "ipath_kernel.h" | 40 | #include "ipath_kernel.h" |
40 | #include "ipath_verbs.h" | 41 | #include "ipath_verbs.h" |
@@ -1497,7 +1498,8 @@ static int ipath_query_device(struct ib_device *ibdev, | |||
1497 | IB_DEVICE_SYS_IMAGE_GUID | IB_DEVICE_RC_RNR_NAK_GEN | | 1498 | IB_DEVICE_SYS_IMAGE_GUID | IB_DEVICE_RC_RNR_NAK_GEN | |
1498 | IB_DEVICE_PORT_ACTIVE_EVENT | IB_DEVICE_SRQ_RESIZE; | 1499 | IB_DEVICE_PORT_ACTIVE_EVENT | IB_DEVICE_SRQ_RESIZE; |
1499 | props->page_size_cap = PAGE_SIZE; | 1500 | props->page_size_cap = PAGE_SIZE; |
1500 | props->vendor_id = dev->dd->ipath_vendorid; | 1501 | props->vendor_id = |
1502 | IPATH_SRC_OUI_1 << 16 | IPATH_SRC_OUI_2 << 8 | IPATH_SRC_OUI_3; | ||
1501 | props->vendor_part_id = dev->dd->ipath_deviceid; | 1503 | props->vendor_part_id = dev->dd->ipath_deviceid; |
1502 | props->hw_ver = dev->dd->ipath_pcirev; | 1504 | props->hw_ver = dev->dd->ipath_pcirev; |
1503 | 1505 | ||
diff --git a/drivers/infiniband/hw/ipath/ipath_verbs_mcast.c b/drivers/infiniband/hw/ipath/ipath_verbs_mcast.c index 9e5abf9c309..d73e3223287 100644 --- a/drivers/infiniband/hw/ipath/ipath_verbs_mcast.c +++ b/drivers/infiniband/hw/ipath/ipath_verbs_mcast.c | |||
@@ -31,8 +31,7 @@ | |||
31 | * SOFTWARE. | 31 | * SOFTWARE. |
32 | */ | 32 | */ |
33 | 33 | ||
34 | #include <linux/list.h> | 34 | #include <linux/rculist.h> |
35 | #include <linux/rcupdate.h> | ||
36 | 35 | ||
37 | #include "ipath_verbs.h" | 36 | #include "ipath_verbs.h" |
38 | 37 | ||