Lines Matching refs:ibp

64 static void qib_send_trap(struct qib_ibport *ibp, void *data, unsigned len)
73 agent = ibp->rvp.send_agent;
78 if (!(ppd_from_ibp(ibp)->lflags & QIBL_LINKACTIVE))
82 if (ibp->rvp.trap_timeout &&
83 time_before(jiffies, ibp->rvp.trap_timeout))
97 ibp->rvp.tid++;
98 smp->tid = cpu_to_be64(ibp->rvp.tid);
103 spin_lock_irqsave(&ibp->rvp.lock, flags);
104 if (!ibp->rvp.sm_ah) {
105 if (ibp->rvp.sm_lid != be16_to_cpu(IB_LID_PERMISSIVE)) {
108 ah = qib_create_qp0_ah(ibp, (u16)ibp->rvp.sm_lid);
113 ibp->rvp.sm_ah = ibah_to_rvtah(ah);
119 send_buf->ah = &ibp->rvp.sm_ah->ibah;
122 spin_unlock_irqrestore(&ibp->rvp.lock, flags);
128 timeout = (4096 * (1UL << ibp->rvp.subnet_timeout)) / 1000;
129 ibp->rvp.trap_timeout = jiffies + usecs_to_jiffies(timeout);
132 ibp->rvp.trap_timeout = 0;
139 void qib_bad_pkey(struct qib_ibport *ibp, u32 key, u32 sl,
144 ibp->rvp.n_pkt_drops++;
145 ibp->rvp.pkey_violations++;
152 data.issuer_lid = cpu_to_be16(ppd_from_ibp(ibp)->lid);
161 qib_send_trap(ibp, &data, sizeof(data));
167 static void qib_bad_mkey(struct qib_ibport *ibp, struct ib_smp *smp)
176 data.issuer_lid = cpu_to_be16(ppd_from_ibp(ibp)->lid);
200 qib_send_trap(ibp, &data, sizeof(data));
210 struct qib_ibport *ibp = &dd->pport[port_num - 1].ibport_data;
217 data.issuer_lid = cpu_to_be16(ppd_from_ibp(ibp)->lid);
222 cpu_to_be32(ibp->rvp.port_cap_flags);
223 qib_send_trap(ibp, &data, sizeof(data));
229 void qib_sys_guid_chg(struct qib_ibport *ibp)
237 data.issuer_lid = cpu_to_be16(ppd_from_ibp(ibp)->lid);
243 qib_send_trap(ibp, &data, sizeof(data));
249 void qib_node_desc_chg(struct qib_ibport *ibp)
257 data.issuer_lid = cpu_to_be16(ppd_from_ibp(ibp)->lid);
264 qib_send_trap(ibp, &data, sizeof(data));
327 struct qib_ibport *ibp = &ppd->ibport_data;
338 p[i] = ibp->guids[i - 1];
406 static int check_mkey(struct qib_ibport *ibp, struct ib_smp *smp, int mad_flags)
412 if (ibp->rvp.mkey_lease_timeout &&
413 time_after_eq(jiffies, ibp->rvp.mkey_lease_timeout)) {
415 ibp->rvp.mkey_lease_timeout = 0;
416 ibp->rvp.mkeyprot = 0;
419 if ((mad_flags & IB_MAD_IGNORE_MKEY) || ibp->rvp.mkey == 0 ||
420 ibp->rvp.mkey == smp->mkey)
424 if (valid_mkey && ibp->rvp.mkey_lease_timeout &&
428 ibp->rvp.mkey_lease_timeout = 0;
434 if (ibp->rvp.mkeyprot < 2)
439 if (ibp->rvp.mkey_violations != 0xFFFF)
440 ++ibp->rvp.mkey_violations;
441 if (!ibp->rvp.mkey_lease_timeout &&
442 ibp->rvp.mkey_lease_period)
443 ibp->rvp.mkey_lease_timeout = jiffies +
444 ibp->rvp.mkey_lease_period * HZ;
446 qib_bad_mkey(ibp, smp);
459 struct qib_ibport *ibp;
475 ibp = to_iport(ibdev, port_num);
476 ret = check_mkey(ibp, smp, 0);
487 ibp = &ppd->ibport_data;
494 ibp->rvp.mkey != smp->mkey &&
495 ibp->rvp.mkeyprot == 1))
496 pip->mkey = ibp->rvp.mkey;
497 pip->gid_prefix = ibp->rvp.gid_prefix;
499 pip->sm_lid = cpu_to_be16((u16)ibp->rvp.sm_lid);
500 pip->cap_mask = cpu_to_be32(ibp->rvp.port_cap_flags);
502 pip->mkey_lease_period = cpu_to_be16(ibp->rvp.mkey_lease_period);
513 pip->mkeyprot_resv_lmc = (ibp->rvp.mkeyprot << 6) | ppd->lmc;
534 pip->neighbormtu_mastersmsl = (mtu << 4) | ibp->rvp.sm_sl;
536 pip->vl_high_limit = ibp->rvp.vl_high_limit;
547 pip->mkey_violations = cpu_to_be16(ibp->rvp.mkey_violations);
549 pip->pkey_violations = cpu_to_be16(ibp->rvp.pkey_violations);
550 pip->qkey_violations = cpu_to_be16(ibp->rvp.qkey_violations);
553 pip->clientrereg_resv_subnetto = ibp->rvp.subnet_timeout;
560 if (ibp->rvp.port_cap_flags & IB_PORT_LINK_LATENCY_SUP) {
632 struct qib_ibport *ibp = &ppd->ibport_data;
637 ibp->guids[i - 1] = p[i];
660 struct qib_ibport *ibp;
686 ibp = &ppd->ibport_data;
690 ibp->rvp.mkey = pip->mkey;
691 ibp->rvp.gid_prefix = pip->gid_prefix;
692 ibp->rvp.mkey_lease_period = be16_to_cpu(pip->mkey_lease_period);
713 else if (smlid != ibp->rvp.sm_lid || msl != ibp->rvp.sm_sl) {
714 spin_lock_irqsave(&ibp->rvp.lock, flags);
715 if (ibp->rvp.sm_ah) {
716 if (smlid != ibp->rvp.sm_lid)
717 rdma_ah_set_dlid(&ibp->rvp.sm_ah->attr,
719 if (msl != ibp->rvp.sm_sl)
720 rdma_ah_set_sl(&ibp->rvp.sm_ah->attr, msl);
722 spin_unlock_irqrestore(&ibp->rvp.lock, flags);
723 if (smlid != ibp->rvp.sm_lid)
724 ibp->rvp.sm_lid = smlid;
725 if (msl != ibp->rvp.sm_sl)
726 ibp->rvp.sm_sl = msl;
774 ibp->rvp.mkeyprot = pip->mkeyprot_resv_lmc >> 6;
775 ibp->rvp.vl_high_limit = pip->vl_high_limit;
777 ibp->rvp.vl_high_limit);
795 ibp->rvp.mkey_violations = 0;
798 ibp->rvp.pkey_violations = 0;
801 ibp->rvp.qkey_violations = 0;
810 ibp->rvp.subnet_timeout = pip->clientrereg_resv_subnetto & 0x1F;
1060 struct qib_ibport *ibp = to_iport(ibdev, port);
1066 if (!(ibp->rvp.port_cap_flags & IB_PORT_SL_MAP_SUP))
1069 for (i = 0; i < ARRAY_SIZE(ibp->sl_to_vl); i += 2)
1070 *p++ = (ibp->sl_to_vl[i] << 4) | ibp->sl_to_vl[i + 1];
1078 struct qib_ibport *ibp = to_iport(ibdev, port);
1082 if (!(ibp->rvp.port_cap_flags & IB_PORT_SL_MAP_SUP)) {
1087 for (i = 0; i < ARRAY_SIZE(ibp->sl_to_vl); i += 2, p++) {
1088 ibp->sl_to_vl[i] = *p >> 4;
1089 ibp->sl_to_vl[i + 1] = *p & 0xF;
1189 struct qib_ibport *ibp = to_iport(ibdev, port);
1190 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
1201 spin_lock_irqsave(&ibp->rvp.lock, flags);
1206 p->sample_start = cpu_to_be32(ibp->rvp.pma_sample_start);
1207 p->sample_interval = cpu_to_be32(ibp->rvp.pma_sample_interval);
1208 p->tag = cpu_to_be16(ibp->rvp.pma_tag);
1209 p->counter_select[0] = ibp->rvp.pma_counter_select[0];
1210 p->counter_select[1] = ibp->rvp.pma_counter_select[1];
1211 p->counter_select[2] = ibp->rvp.pma_counter_select[2];
1212 p->counter_select[3] = ibp->rvp.pma_counter_select[3];
1213 p->counter_select[4] = ibp->rvp.pma_counter_select[4];
1214 spin_unlock_irqrestore(&ibp->rvp.lock, flags);
1227 struct qib_ibport *ibp = to_iport(ibdev, port);
1228 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
1239 spin_lock_irqsave(&ibp->rvp.lock, flags);
1248 ibp->rvp.pma_sample_start = be32_to_cpu(p->sample_start);
1249 ibp->rvp.pma_sample_interval = be32_to_cpu(p->sample_interval);
1250 ibp->rvp.pma_tag = be16_to_cpu(p->tag);
1251 ibp->rvp.pma_counter_select[0] = p->counter_select[0];
1252 ibp->rvp.pma_counter_select[1] = p->counter_select[1];
1253 ibp->rvp.pma_counter_select[2] = p->counter_select[2];
1254 ibp->rvp.pma_counter_select[3] = p->counter_select[3];
1255 ibp->rvp.pma_counter_select[4] = p->counter_select[4];
1256 dd->f_set_cntr_sample(ppd, ibp->rvp.pma_sample_interval,
1257 ibp->rvp.pma_sample_start);
1259 spin_unlock_irqrestore(&ibp->rvp.lock, flags);
1267 static u64 get_counter(struct qib_ibport *ibp, struct qib_pportdata *ppd,
1307 struct qib_ibport *ibp = &ppd->ibport_data;
1310 get_counter(ibp, ppd, IB_PMA_PORT_XMIT_DATA);
1312 get_counter(ibp, ppd, IB_PMA_PORT_RCV_DATA);
1314 get_counter(ibp, ppd, IB_PMA_PORT_XMIT_PKTS);
1316 get_counter(ibp, ppd, IB_PMA_PORT_RCV_PKTS);
1318 get_counter(ibp, ppd, IB_PMA_PORT_XMIT_WAIT);
1356 struct qib_ibport *ibp = to_iport(ibdev, port);
1357 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
1363 spin_lock_irqsave(&ibp->rvp.lock, flags);
1364 p->tag = cpu_to_be16(ibp->rvp.pma_tag);
1379 for (i = 0; i < ARRAY_SIZE(ibp->rvp.pma_counter_select); i++)
1382 ppd, ibp->rvp.pma_counter_select[i]));
1383 spin_unlock_irqrestore(&ibp->rvp.lock, flags);
1395 struct qib_ibport *ibp = to_iport(ibdev, port);
1396 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
1403 spin_lock_irqsave(&ibp->rvp.lock, flags);
1404 p->tag = cpu_to_be16(ibp->rvp.pma_tag);
1421 for (i = 0; i < ARRAY_SIZE(ibp->rvp.pma_counter_select); i++)
1424 ppd, ibp->rvp.pma_counter_select[i]));
1425 spin_unlock_irqrestore(&ibp->rvp.lock, flags);
1435 struct qib_ibport *ibp = to_iport(ibdev, port);
1436 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
1443 cntrs.symbol_error_counter -= ibp->z_symbol_error_counter;
1445 ibp->z_link_error_recovery_counter;
1446 cntrs.link_downed_counter -= ibp->z_link_downed_counter;
1447 cntrs.port_rcv_errors -= ibp->z_port_rcv_errors;
1448 cntrs.port_rcv_remphys_errors -= ibp->z_port_rcv_remphys_errors;
1449 cntrs.port_xmit_discards -= ibp->z_port_xmit_discards;
1450 cntrs.port_xmit_data -= ibp->z_port_xmit_data;
1451 cntrs.port_rcv_data -= ibp->z_port_rcv_data;
1452 cntrs.port_xmit_packets -= ibp->z_port_xmit_packets;
1453 cntrs.port_rcv_packets -= ibp->z_port_rcv_packets;
1455 ibp->z_local_link_integrity_errors;
1457 ibp->z_excessive_buffer_overrun_errors;
1458 cntrs.vl15_dropped -= ibp->z_vl15_dropped;
1459 cntrs.vl15_dropped += ibp->rvp.n_vl15_dropped;
1535 struct qib_ibport *ibp = to_iport(ibdev, port);
1536 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
1557 cntrs.symbol_error_counter -= ibp->z_symbol_error_counter;
1559 ibp->z_link_error_recovery_counter;
1560 cntrs.link_downed_counter -= ibp->z_link_downed_counter;
1561 cntrs.port_rcv_errors -= ibp->z_port_rcv_errors;
1563 ibp->z_port_rcv_remphys_errors;
1564 cntrs.port_xmit_discards -= ibp->z_port_xmit_discards;
1566 ibp->z_local_link_integrity_errors;
1568 ibp->z_excessive_buffer_overrun_errors;
1569 cntrs.vl15_dropped -= ibp->z_vl15_dropped;
1570 cntrs.vl15_dropped += ibp->rvp.n_vl15_dropped;
1571 cntrs.port_xmit_data -= ibp->z_port_xmit_data;
1572 cntrs.port_rcv_data -= ibp->z_port_rcv_data;
1573 cntrs.port_xmit_packets -= ibp->z_port_xmit_packets;
1574 cntrs.port_rcv_packets -= ibp->z_port_rcv_packets;
1642 struct qib_ibport *ibp,
1650 p = per_cpu_ptr(ibp->pmastats, cpu);
1663 struct qib_ibport *ibp = to_iport(ibdev, port);
1664 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
1680 swords -= ibp->z_port_xmit_data;
1681 rwords -= ibp->z_port_rcv_data;
1682 spkts -= ibp->z_port_xmit_packets;
1683 rpkts -= ibp->z_port_rcv_packets;
1690 qib_snapshot_pmacounters(ibp, &pma);
1693 - ibp->z_unicast_xmit);
1695 - ibp->z_unicast_rcv);
1697 - ibp->z_multicast_xmit);
1699 - ibp->z_multicast_rcv);
1710 struct qib_ibport *ibp = to_iport(ibdev, port);
1711 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
1721 ibp->z_symbol_error_counter = cntrs.symbol_error_counter;
1724 ibp->z_link_error_recovery_counter =
1728 ibp->z_link_downed_counter = cntrs.link_downed_counter;
1731 ibp->z_port_rcv_errors = cntrs.port_rcv_errors;
1734 ibp->z_port_rcv_remphys_errors =
1738 ibp->z_port_xmit_discards = cntrs.port_xmit_discards;
1741 ibp->z_local_link_integrity_errors =
1745 ibp->z_excessive_buffer_overrun_errors =
1749 ibp->rvp.n_vl15_dropped = 0;
1750 ibp->z_vl15_dropped = cntrs.vl15_dropped;
1754 ibp->z_port_xmit_data = cntrs.port_xmit_data;
1757 ibp->z_port_rcv_data = cntrs.port_rcv_data;
1760 ibp->z_port_xmit_packets = cntrs.port_xmit_packets;
1763 ibp->z_port_rcv_packets = cntrs.port_rcv_packets;
1771 struct qib_ibport *ibp = to_iport(ibdev, port);
1772 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
1791 ibp->z_port_xmit_data = cntrs.port_xmit_data;
1792 ibp->z_port_rcv_data = cntrs.port_rcv_data;
1793 ibp->z_port_xmit_packets = cntrs.port_xmit_packets;
1794 ibp->z_port_rcv_packets = cntrs.port_rcv_packets;
1797 ibp->z_symbol_error_counter =
1799 ibp->z_link_error_recovery_counter =
1801 ibp->z_link_downed_counter =
1803 ibp->z_port_rcv_errors = cntrs.port_rcv_errors;
1804 ibp->z_port_rcv_remphys_errors =
1806 ibp->z_port_xmit_discards =
1808 ibp->z_local_link_integrity_errors =
1810 ibp->z_excessive_buffer_overrun_errors =
1812 ibp->rvp.n_vl15_dropped = 0;
1813 ibp->z_vl15_dropped = cntrs.vl15_dropped;
1824 struct qib_ibport *ibp = to_iport(ibdev, port);
1825 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
1832 ibp->z_port_xmit_data = swords;
1835 ibp->z_port_rcv_data = rwords;
1838 ibp->z_port_xmit_packets = spkts;
1841 ibp->z_port_rcv_packets = rpkts;
1843 qib_snapshot_pmacounters(ibp, &pma);
1846 ibp->z_unicast_xmit = pma.n_unicast_xmit;
1849 ibp->z_unicast_rcv = pma.n_unicast_rcv;
1852 ibp->z_multicast_xmit = pma.n_multicast_xmit;
1855 ibp->z_multicast_rcv = pma.n_multicast_rcv;
1865 struct qib_ibport *ibp = to_iport(ibdev, port);
1866 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
1876 ret = check_mkey(ibp, smp, mad_flags);
1922 if (ibp->rvp.port_cap_flags & IB_PORT_SM_DISABLED) {
1927 if (ibp->rvp.port_cap_flags & IB_PORT_SM) {
1956 if (ibp->rvp.port_cap_flags & IB_PORT_SM_DISABLED) {
1961 if (ibp->rvp.port_cap_flags & IB_PORT_SM) {
2118 struct qib_ibport *ibp = to_iport(ibdev, port);
2119 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
2133 struct qib_ibport *ibp = to_iport(ibdev, port);
2134 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
2161 struct qib_ibport *ibp = to_iport(ibdev, port);
2162 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
2212 struct qib_ibport *ibp = to_iport(ibdev, port);
2213 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
2240 struct qib_ibport *ibp = to_iport(ibdev, port);
2241 struct qib_pportdata *ppd = ppd_from_ibp(ibp);
2367 struct qib_ibport *ibp = to_iport(ibdev, port);
2368 struct qib_pportdata *ppd = ppd_from_ibp(ibp);