Lines Matching refs:pp
46 static struct pkey_index_qp_list *get_pkey_idx_qp_list(struct ib_port_pkey *pp)
50 struct ib_device *dev = pp->sec->dev;
52 spin_lock(&dev->port_data[pp->port_num].pkey_list_lock);
53 list_for_each_entry (tmp_pkey, &dev->port_data[pp->port_num].pkey_list,
55 if (tmp_pkey->pkey_index == pp->pkey_index) {
60 spin_unlock(&dev->port_data[pp->port_num].pkey_list_lock);
64 static int get_pkey_and_subnet_prefix(struct ib_port_pkey *pp,
68 struct ib_device *dev = pp->sec->dev;
71 ret = ib_get_cached_pkey(dev, pp->port_num, pp->pkey_index, pkey);
75 ib_get_cached_subnet_prefix(dev, pp->port_num, subnet_prefix);
199 struct ib_port_pkey *pp, *tmp_pp;
209 list_for_each_entry(pp, &pkey->qp_list, qp_list) {
210 if (atomic_read(&pp->sec->error_list_count))
215 pp->sec)) {
216 atomic_inc(&pp->sec->error_list_count);
217 list_add(&pp->to_error_list,
224 list_for_each_entry_safe(pp,
228 mutex_lock(&pp->sec->mutex);
229 qp_to_error(pp->sec);
230 list_del(&pp->to_error_list);
231 atomic_dec(&pp->sec->error_list_count);
232 comp = pp->sec->destroying;
233 mutex_unlock(&pp->sec->mutex);
236 complete(&pp->sec->error_complete);
243 static int port_pkey_list_insert(struct ib_port_pkey *pp)
248 u32 port_num = pp->port_num;
251 if (pp->state != IB_PORT_PKEY_VALID)
254 dev = pp->sec->dev;
256 pkey = get_pkey_idx_qp_list(pp);
272 if (tmp_pkey->pkey_index == pp->pkey_index) {
281 pkey->pkey_index = pp->pkey_index;
291 list_add(&pp->qp_list, &pkey->qp_list);
294 pp->state = IB_PORT_PKEY_LISTED;
302 static void port_pkey_list_remove(struct ib_port_pkey *pp)
306 if (pp->state != IB_PORT_PKEY_LISTED)
309 pkey = get_pkey_idx_qp_list(pp);
312 list_del(&pp->qp_list);
318 pp->state = IB_PORT_PKEY_VALID;