Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
RDMA: Update missed conversion of flush_scheduled_work()
RDMA/ucma: Copy iWARP route information on queries
RDMA/amso1100: Fix compile warnings
RDMA/cxgb4: Set the correct device physical function for iWARP connections
RDMA/cxgb4: Limit MAXBURST EQ context field to 256B
IB/qib: Hold link for TX SERDES settings
mlx4_core: Add ConnectX-3 device IDs

+53 -28
+1 -1
drivers/infiniband/core/sa_query.c
··· 1079 1079 1080 1080 ib_unregister_event_handler(&sa_dev->event_handler); 1081 1081 1082 - flush_scheduled_work(); 1082 + flush_workqueue(ib_wq); 1083 1083 1084 1084 for (i = 0; i <= sa_dev->end_port - sa_dev->start_port; ++i) { 1085 1085 if (rdma_port_get_link_layer(device, i + 1) == IB_LINK_LAYER_INFINIBAND) {
+20 -2
drivers/infiniband/core/ucma.c
··· 636 636 } 637 637 } 638 638 639 + static void ucma_copy_iw_route(struct rdma_ucm_query_route_resp *resp, 640 + struct rdma_route *route) 641 + { 642 + struct rdma_dev_addr *dev_addr; 643 + 644 + dev_addr = &route->addr.dev_addr; 645 + rdma_addr_get_dgid(dev_addr, (union ib_gid *) &resp->ib_route[0].dgid); 646 + rdma_addr_get_sgid(dev_addr, (union ib_gid *) &resp->ib_route[0].sgid); 647 + } 648 + 639 649 static ssize_t ucma_query_route(struct ucma_file *file, 640 650 const char __user *inbuf, 641 651 int in_len, int out_len) ··· 680 670 681 671 resp.node_guid = (__force __u64) ctx->cm_id->device->node_guid; 682 672 resp.port_num = ctx->cm_id->port_num; 683 - if (rdma_node_get_transport(ctx->cm_id->device->node_type) == RDMA_TRANSPORT_IB) { 684 - switch (rdma_port_get_link_layer(ctx->cm_id->device, ctx->cm_id->port_num)) { 673 + switch (rdma_node_get_transport(ctx->cm_id->device->node_type)) { 674 + case RDMA_TRANSPORT_IB: 675 + switch (rdma_port_get_link_layer(ctx->cm_id->device, 676 + ctx->cm_id->port_num)) { 685 677 case IB_LINK_LAYER_INFINIBAND: 686 678 ucma_copy_ib_route(&resp, &ctx->cm_id->route); 687 679 break; ··· 693 681 default: 694 682 break; 695 683 } 684 + break; 685 + case RDMA_TRANSPORT_IWARP: 686 + ucma_copy_iw_route(&resp, &ctx->cm_id->route); 687 + break; 688 + default: 689 + break; 696 690 } 697 691 698 692 out:
+3 -3
drivers/infiniband/hw/amso1100/c2_vq.c
··· 107 107 r = kmalloc(sizeof(struct c2_vq_req), GFP_KERNEL); 108 108 if (r) { 109 109 init_waitqueue_head(&r->wait_object); 110 - r->reply_msg = (u64) NULL; 110 + r->reply_msg = 0; 111 111 r->event = 0; 112 112 r->cm_id = NULL; 113 113 r->qp = NULL; ··· 123 123 */ 124 124 void vq_req_free(struct c2_dev *c2dev, struct c2_vq_req *r) 125 125 { 126 - r->reply_msg = (u64) NULL; 126 + r->reply_msg = 0; 127 127 if (atomic_dec_and_test(&r->refcnt)) { 128 128 kfree(r); 129 129 } ··· 151 151 void vq_req_put(struct c2_dev *c2dev, struct c2_vq_req *r) 152 152 { 153 153 if (atomic_dec_and_test(&r->refcnt)) { 154 - if (r->reply_msg != (u64) NULL) 154 + if (r->reply_msg != 0) 155 155 vq_repbuf_free(c2dev, 156 156 (void *) (unsigned long) r->reply_msg); 157 157 kfree(r);
+1 -1
drivers/infiniband/hw/cxgb4/cm.c
··· 380 380 16)) | FW_WR_FLOWID(ep->hwtid)); 381 381 382 382 flowc->mnemval[0].mnemonic = FW_FLOWC_MNEM_PFNVFN; 383 - flowc->mnemval[0].val = cpu_to_be32(0); 383 + flowc->mnemval[0].val = cpu_to_be32(PCI_FUNC(ep->com.dev->rdev.lldi.pdev->devfn) << 8); 384 384 flowc->mnemval[1].mnemonic = FW_FLOWC_MNEM_CH; 385 385 flowc->mnemval[1].val = cpu_to_be32(ep->tx_chan); 386 386 flowc->mnemval[2].mnemonic = FW_FLOWC_MNEM_PORT;
+2 -2
drivers/infiniband/hw/cxgb4/qp.c
··· 220 220 V_FW_RI_RES_WR_DCAEN(0) | 221 221 V_FW_RI_RES_WR_DCACPU(0) | 222 222 V_FW_RI_RES_WR_FBMIN(2) | 223 - V_FW_RI_RES_WR_FBMAX(3) | 223 + V_FW_RI_RES_WR_FBMAX(2) | 224 224 V_FW_RI_RES_WR_CIDXFTHRESHO(0) | 225 225 V_FW_RI_RES_WR_CIDXFTHRESH(0) | 226 226 V_FW_RI_RES_WR_EQSIZE(eqsize)); ··· 243 243 V_FW_RI_RES_WR_DCAEN(0) | 244 244 V_FW_RI_RES_WR_DCACPU(0) | 245 245 V_FW_RI_RES_WR_FBMIN(2) | 246 - V_FW_RI_RES_WR_FBMAX(3) | 246 + V_FW_RI_RES_WR_FBMAX(2) | 247 247 V_FW_RI_RES_WR_CIDXFTHRESHO(0) | 248 248 V_FW_RI_RES_WR_CIDXFTHRESH(0) | 249 249 V_FW_RI_RES_WR_EQSIZE(eqsize));
+11 -19
drivers/infiniband/hw/qib/qib_iba7322.c
··· 623 623 u8 ibmalfusesnap; 624 624 struct qib_qsfp_data qsfp_data; 625 625 char epmsgbuf[192]; /* for port error interrupt msg buffer */ 626 - u8 bounced; 627 626 }; 628 627 629 628 static struct { ··· 1880 1881 IB_PHYSPORTSTATE_DISABLED) 1881 1882 qib_set_ib_7322_lstate(ppd, 0, 1882 1883 QLOGIC_IB_IBCC_LINKINITCMD_DISABLE); 1883 - else { 1884 - u32 lstate; 1885 - /* 1886 - * We need the current logical link state before 1887 - * lflags are set in handle_e_ibstatuschanged. 1888 - */ 1889 - lstate = qib_7322_iblink_state(ibcs); 1890 - 1891 - if (IS_QMH(dd) && !ppd->cpspec->bounced && 1892 - ltstate == IB_PHYSPORTSTATE_LINKUP && 1893 - (lstate >= IB_PORT_INIT && 1894 - lstate <= IB_PORT_ACTIVE)) { 1895 - ppd->cpspec->bounced = 1; 1896 - qib_7322_set_ib_cfg(ppd, QIB_IB_CFG_LSTATE, 1897 - IB_LINKCMD_DOWN | IB_LINKINITCMD_POLL); 1898 - } 1899 - 1884 + else 1900 1885 /* 1901 1886 * Since going into a recovery state causes the link 1902 1887 * state to go down and since recovery is transitory, ··· 1894 1911 ltstate != IB_PHYSPORTSTATE_RECOVERY_WAITRMT && 1895 1912 ltstate != IB_PHYSPORTSTATE_RECOVERY_IDLE) 1896 1913 qib_handle_e_ibstatuschanged(ppd, ibcs); 1897 - } 1898 1914 } 1899 1915 if (*msg && iserr) 1900 1916 qib_dev_porterr(dd, ppd->port, "%s error\n", msg); ··· 2362 2380 ppd->p_rcvctrl |= SYM_MASK(RcvCtrl_0, RcvIBPortEnable); 2363 2381 qib_write_kreg_port(ppd, krp_rcvctrl, ppd->p_rcvctrl); 2364 2382 spin_unlock_irqrestore(&dd->cspec->rcvmod_lock, flags); 2383 + 2384 + /* Hold the link state machine for mezz boards */ 2385 + if (IS_QMH(dd) || IS_QME(dd)) 2386 + qib_set_ib_7322_lstate(ppd, 0, 2387 + QLOGIC_IB_IBCC_LINKINITCMD_DISABLE); 2365 2388 2366 2389 /* Also enable IBSTATUSCHG interrupt. */ 2367 2390 val = qib_read_kreg_port(ppd, krp_errmask); ··· 5689 5702 ppd->cpspec->h1_val = h1; 5690 5703 /* now change the IBC and serdes, overriding generic */ 5691 5704 init_txdds_table(ppd, 1); 5705 + /* Re-enable the physical state machine on mezz boards 5706 + * now that the correct settings have been set. */ 5707 + if (IS_QMH(dd) || IS_QME(dd)) 5708 + qib_set_ib_7322_lstate(ppd, 0, 5709 + QLOGIC_IB_IBCC_LINKINITCMD_SLEEP); 5692 5710 any++; 5693 5711 } 5694 5712 if (*nxt == '\n')
+15
drivers/net/mlx4/main.c
··· 1286 1286 { PCI_VDEVICE(MELLANOX, 0x6764) }, /* MT26468 ConnectX EN 10GigE PCIe gen2*/ 1287 1287 { PCI_VDEVICE(MELLANOX, 0x6746) }, /* MT26438 ConnectX EN 40GigE PCIe gen2 5GT/s */ 1288 1288 { PCI_VDEVICE(MELLANOX, 0x676e) }, /* MT26478 ConnectX2 40GigE PCIe gen2 */ 1289 + { PCI_VDEVICE(MELLANOX, 0x1002) }, /* MT25400 Family [ConnectX-2 Virtual Function] */ 1290 + { PCI_VDEVICE(MELLANOX, 0x1003) }, /* MT27500 Family [ConnectX-3] */ 1291 + { PCI_VDEVICE(MELLANOX, 0x1004) }, /* MT27500 Family [ConnectX-3 Virtual Function] */ 1292 + { PCI_VDEVICE(MELLANOX, 0x1005) }, /* MT27510 Family */ 1293 + { PCI_VDEVICE(MELLANOX, 0x1006) }, /* MT27511 Family */ 1294 + { PCI_VDEVICE(MELLANOX, 0x1007) }, /* MT27520 Family */ 1295 + { PCI_VDEVICE(MELLANOX, 0x1008) }, /* MT27521 Family */ 1296 + { PCI_VDEVICE(MELLANOX, 0x1009) }, /* MT27530 Family */ 1297 + { PCI_VDEVICE(MELLANOX, 0x100a) }, /* MT27531 Family */ 1298 + { PCI_VDEVICE(MELLANOX, 0x100b) }, /* MT27540 Family */ 1299 + { PCI_VDEVICE(MELLANOX, 0x100c) }, /* MT27541 Family */ 1300 + { PCI_VDEVICE(MELLANOX, 0x100d) }, /* MT27550 Family */ 1301 + { PCI_VDEVICE(MELLANOX, 0x100e) }, /* MT27551 Family */ 1302 + { PCI_VDEVICE(MELLANOX, 0x100f) }, /* MT27560 Family */ 1303 + { PCI_VDEVICE(MELLANOX, 0x1010) }, /* MT27561 Family */ 1289 1304 { 0, } 1290 1305 }; 1291 1306