diff options
Diffstat (limited to 'drivers/infiniband/core/mad.c')
-rw-r--r-- | drivers/infiniband/core/mad.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/drivers/infiniband/core/mad.c b/drivers/infiniband/core/mad.c index 1c3cfbbe6a97..082f03c158f0 100644 --- a/drivers/infiniband/core/mad.c +++ b/drivers/infiniband/core/mad.c | |||
@@ -1246,8 +1246,8 @@ static int find_vendor_oui(struct ib_mad_mgmt_vendor_class *vendor_class, | |||
1246 | int i; | 1246 | int i; |
1247 | 1247 | ||
1248 | for (i = 0; i < MAX_MGMT_OUI; i++) | 1248 | for (i = 0; i < MAX_MGMT_OUI; i++) |
1249 | /* Is there matching OUI for this vendor class ? */ | 1249 | /* Is there matching OUI for this vendor class ? */ |
1250 | if (!memcmp(vendor_class->oui[i], oui, 3)) | 1250 | if (!memcmp(vendor_class->oui[i], oui, 3)) |
1251 | return i; | 1251 | return i; |
1252 | 1252 | ||
1253 | return -1; | 1253 | return -1; |
@@ -2237,7 +2237,7 @@ static void cancel_mads(struct ib_mad_agent_private *mad_agent_priv) | |||
2237 | list_for_each_entry_safe(mad_send_wr, temp_mad_send_wr, | 2237 | list_for_each_entry_safe(mad_send_wr, temp_mad_send_wr, |
2238 | &mad_agent_priv->send_list, agent_list) { | 2238 | &mad_agent_priv->send_list, agent_list) { |
2239 | if (mad_send_wr->status == IB_WC_SUCCESS) { | 2239 | if (mad_send_wr->status == IB_WC_SUCCESS) { |
2240 | mad_send_wr->status = IB_WC_WR_FLUSH_ERR; | 2240 | mad_send_wr->status = IB_WC_WR_FLUSH_ERR; |
2241 | mad_send_wr->refcount -= (mad_send_wr->timeout > 0); | 2241 | mad_send_wr->refcount -= (mad_send_wr->timeout > 0); |
2242 | } | 2242 | } |
2243 | } | 2243 | } |
@@ -2528,10 +2528,10 @@ static int ib_mad_post_receive_mads(struct ib_mad_qp_info *qp_info, | |||
2528 | } | 2528 | } |
2529 | } | 2529 | } |
2530 | sg_list.addr = dma_map_single(qp_info->port_priv-> | 2530 | sg_list.addr = dma_map_single(qp_info->port_priv-> |
2531 | device->dma_device, | 2531 | device->dma_device, |
2532 | &mad_priv->grh, | 2532 | &mad_priv->grh, |
2533 | sizeof *mad_priv - | 2533 | sizeof *mad_priv - |
2534 | sizeof mad_priv->header, | 2534 | sizeof mad_priv->header, |
2535 | DMA_FROM_DEVICE); | 2535 | DMA_FROM_DEVICE); |
2536 | pci_unmap_addr_set(&mad_priv->header, mapping, sg_list.addr); | 2536 | pci_unmap_addr_set(&mad_priv->header, mapping, sg_list.addr); |
2537 | recv_wr.wr_id = (unsigned long)&mad_priv->header.mad_list; | 2537 | recv_wr.wr_id = (unsigned long)&mad_priv->header.mad_list; |
@@ -2606,7 +2606,7 @@ static int ib_mad_port_start(struct ib_mad_port_private *port_priv) | |||
2606 | struct ib_qp *qp; | 2606 | struct ib_qp *qp; |
2607 | 2607 | ||
2608 | attr = kmalloc(sizeof *attr, GFP_KERNEL); | 2608 | attr = kmalloc(sizeof *attr, GFP_KERNEL); |
2609 | if (!attr) { | 2609 | if (!attr) { |
2610 | printk(KERN_ERR PFX "Couldn't kmalloc ib_qp_attr\n"); | 2610 | printk(KERN_ERR PFX "Couldn't kmalloc ib_qp_attr\n"); |
2611 | return -ENOMEM; | 2611 | return -ENOMEM; |
2612 | } | 2612 | } |
@@ -2876,7 +2876,10 @@ static void ib_mad_init_device(struct ib_device *device) | |||
2876 | { | 2876 | { |
2877 | int start, end, i; | 2877 | int start, end, i; |
2878 | 2878 | ||
2879 | if (device->node_type == IB_NODE_SWITCH) { | 2879 | if (rdma_node_get_transport(device->node_type) != RDMA_TRANSPORT_IB) |
2880 | return; | ||
2881 | |||
2882 | if (device->node_type == RDMA_NODE_IB_SWITCH) { | ||
2880 | start = 0; | 2883 | start = 0; |
2881 | end = 0; | 2884 | end = 0; |
2882 | } else { | 2885 | } else { |
@@ -2923,7 +2926,7 @@ static void ib_mad_remove_device(struct ib_device *device) | |||
2923 | { | 2926 | { |
2924 | int i, num_ports, cur_port; | 2927 | int i, num_ports, cur_port; |
2925 | 2928 | ||
2926 | if (device->node_type == IB_NODE_SWITCH) { | 2929 | if (device->node_type == RDMA_NODE_IB_SWITCH) { |
2927 | num_ports = 1; | 2930 | num_ports = 1; |
2928 | cur_port = 0; | 2931 | cur_port = 0; |
2929 | } else { | 2932 | } else { |