mad.c (320438301b85038e995b5a40a24c43cbc0ed4909) | mad.c (62ede7779904bc75bdd84f1ff0016113956ce3b4) |
---|---|
1/* 2 * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. 3 * 4 * This software is available to you under a choice of one of two 5 * licenses. You may choose to be licensed under the terms of the GNU 6 * General Public License (GPL) Version 2, available from the file 7 * COPYING in the main directory of this source tree, or the 8 * OpenIB.org BSD license below: --- 155 unchanged lines hidden (view full) --- 164 (in_wc->wc_flags & IB_WC_GRH ? 0x80 : 0); 165 ext_info->pkey = cpu_to_be16(in_wc->pkey_index); 166 167 if (in_grh) 168 memcpy(ext_info->grh, in_grh, 40); 169 170 op_modifier |= 0x4; 171 | 1/* 2 * Copyright (c) 2007 Cisco Systems, Inc. All rights reserved. 3 * 4 * This software is available to you under a choice of one of two 5 * licenses. You may choose to be licensed under the terms of the GNU 6 * General Public License (GPL) Version 2, available from the file 7 * COPYING in the main directory of this source tree, or the 8 * OpenIB.org BSD license below: --- 155 unchanged lines hidden (view full) --- 164 (in_wc->wc_flags & IB_WC_GRH ? 0x80 : 0); 165 ext_info->pkey = cpu_to_be16(in_wc->pkey_index); 166 167 if (in_grh) 168 memcpy(ext_info->grh, in_grh, 40); 169 170 op_modifier |= 0x4; 171 |
172 in_modifier |= ib_slid_cpu16(in_wc->slid) << 16; | 172 in_modifier |= ib_lid_cpu16(in_wc->slid) << 16; |
173 } 174 175 err = mlx4_cmd_box(dev->dev, inmailbox->dma, outmailbox->dma, in_modifier, 176 mlx4_is_master(dev->dev) ? (op_modifier & ~0x8) : op_modifier, 177 MLX4_CMD_MAD_IFC, MLX4_CMD_TIME_CLASS_C, 178 (op_modifier & 0x8) ? MLX4_CMD_NATIVE : MLX4_CMD_WRAPPED); 179 180 if (!err) --- 439 unchanged lines hidden (view full) --- 620 vlan = wc->vlan_id; 621 } 622 623 tun_mad->hdr.sl_vid = cpu_to_be16(vlan); 624 memcpy((char *)&tun_mad->hdr.mac_31_0, &(wc->smac[0]), 4); 625 memcpy((char *)&tun_mad->hdr.slid_mac_47_32, &(wc->smac[4]), 2); 626 } else { 627 tun_mad->hdr.sl_vid = cpu_to_be16(((u16)(wc->sl)) << 12); | 173 } 174 175 err = mlx4_cmd_box(dev->dev, inmailbox->dma, outmailbox->dma, in_modifier, 176 mlx4_is_master(dev->dev) ? (op_modifier & ~0x8) : op_modifier, 177 MLX4_CMD_MAD_IFC, MLX4_CMD_TIME_CLASS_C, 178 (op_modifier & 0x8) ? MLX4_CMD_NATIVE : MLX4_CMD_WRAPPED); 179 180 if (!err) --- 439 unchanged lines hidden (view full) --- 620 vlan = wc->vlan_id; 621 } 622 623 tun_mad->hdr.sl_vid = cpu_to_be16(vlan); 624 memcpy((char *)&tun_mad->hdr.mac_31_0, &(wc->smac[0]), 4); 625 memcpy((char *)&tun_mad->hdr.slid_mac_47_32, &(wc->smac[4]), 2); 626 } else { 627 tun_mad->hdr.sl_vid = cpu_to_be16(((u16)(wc->sl)) << 12); |
628 tun_mad->hdr.slid_mac_47_32 = ib_slid_be16(wc->slid); | 628 tun_mad->hdr.slid_mac_47_32 = ib_lid_be16(wc->slid); |
629 } 630 631 ib_dma_sync_single_for_device(&dev->ib_dev, 632 tun_qp->tx_ring[tun_tx_ix].buf.map, 633 sizeof (struct mlx4_rcv_tunnel_mad), 634 DMA_TO_DEVICE); 635 636 list.addr = tun_qp->tx_ring[tun_tx_ix].buf.map; --- 184 unchanged lines hidden (view full) --- 821 be64_to_cpu(in_grh->sgid.global.subnet_prefix), 822 be64_to_cpu(in_grh->sgid.global.interface_id)); 823 pr_debug("dgid_hi:0x%016llx dgid_lo:0x%016llx\n", 824 be64_to_cpu(in_grh->dgid.global.subnet_prefix), 825 be64_to_cpu(in_grh->dgid.global.interface_id)); 826 } 827 } 828 | 629 } 630 631 ib_dma_sync_single_for_device(&dev->ib_dev, 632 tun_qp->tx_ring[tun_tx_ix].buf.map, 633 sizeof (struct mlx4_rcv_tunnel_mad), 634 DMA_TO_DEVICE); 635 636 list.addr = tun_qp->tx_ring[tun_tx_ix].buf.map; --- 184 unchanged lines hidden (view full) --- 821 be64_to_cpu(in_grh->sgid.global.subnet_prefix), 822 be64_to_cpu(in_grh->sgid.global.interface_id)); 823 pr_debug("dgid_hi:0x%016llx dgid_lo:0x%016llx\n", 824 be64_to_cpu(in_grh->dgid.global.subnet_prefix), 825 be64_to_cpu(in_grh->dgid.global.interface_id)); 826 } 827 } 828 |
829 slid = in_wc ? ib_slid_cpu16(in_wc->slid) : be16_to_cpu(IB_LID_PERMISSIVE); | 829 slid = in_wc ? ib_lid_cpu16(in_wc->slid) : be16_to_cpu(IB_LID_PERMISSIVE); |
830 831 if (in_mad->mad_hdr.method == IB_MGMT_METHOD_TRAP && slid == 0) { 832 forward_trap(to_mdev(ibdev), port_num, in_mad); 833 return IB_MAD_RESULT_SUCCESS | IB_MAD_RESULT_CONSUMED; 834 } 835 836 if (in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_LID_ROUTED || 837 in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE) { --- 17 unchanged lines hidden (view full) --- 855 } else 856 return IB_MAD_RESULT_SUCCESS; 857 858 if ((in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_LID_ROUTED || 859 in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE) && 860 in_mad->mad_hdr.method == IB_MGMT_METHOD_SET && 861 in_mad->mad_hdr.attr_id == IB_SMP_ATTR_PORT_INFO && 862 !ib_query_port(ibdev, port_num, &pattr)) | 830 831 if (in_mad->mad_hdr.method == IB_MGMT_METHOD_TRAP && slid == 0) { 832 forward_trap(to_mdev(ibdev), port_num, in_mad); 833 return IB_MAD_RESULT_SUCCESS | IB_MAD_RESULT_CONSUMED; 834 } 835 836 if (in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_LID_ROUTED || 837 in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE) { --- 17 unchanged lines hidden (view full) --- 855 } else 856 return IB_MAD_RESULT_SUCCESS; 857 858 if ((in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_LID_ROUTED || 859 in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE) && 860 in_mad->mad_hdr.method == IB_MGMT_METHOD_SET && 861 in_mad->mad_hdr.attr_id == IB_SMP_ATTR_PORT_INFO && 862 !ib_query_port(ibdev, port_num, &pattr)) |
863 prev_lid = (u16)pattr.lid; | 863 prev_lid = ib_lid_cpu16(pattr.lid); |
864 865 err = mlx4_MAD_IFC(to_mdev(ibdev), 866 (mad_flags & IB_MAD_IGNORE_MKEY ? MLX4_MAD_IFC_IGNORE_MKEY : 0) | 867 (mad_flags & IB_MAD_IGNORE_BKEY ? MLX4_MAD_IFC_IGNORE_BKEY : 0) | 868 MLX4_MAD_IFC_NET_VIEW, 869 port_num, in_wc, in_grh, in_mad, out_mad); 870 if (err) 871 return IB_MAD_RESULT_FAILURE; --- 1513 unchanged lines hidden --- | 864 865 err = mlx4_MAD_IFC(to_mdev(ibdev), 866 (mad_flags & IB_MAD_IGNORE_MKEY ? MLX4_MAD_IFC_IGNORE_MKEY : 0) | 867 (mad_flags & IB_MAD_IGNORE_BKEY ? MLX4_MAD_IFC_IGNORE_BKEY : 0) | 868 MLX4_MAD_IFC_NET_VIEW, 869 port_num, in_wc, in_grh, in_mad, out_mad); 870 if (err) 871 return IB_MAD_RESULT_FAILURE; --- 1513 unchanged lines hidden --- |