Lines Matching defs:sdev
64 static int siw_device_register(struct siw_device *sdev, const char *name)
66 struct ib_device *base_dev = &sdev->base_dev;
70 sdev->vendor_part_id = dev_id++;
78 siw_dbg(base_dev, "HWaddr=%pM\n", sdev->raw_gid);
84 struct siw_device *sdev = to_siw_dev(base_dev);
86 xa_destroy(&sdev->qp_xa);
87 xa_destroy(&sdev->mem_xa);
163 int siw_get_tx_cpu(struct siw_device *sdev)
166 int i, num_cpus, cpu, min_use, node = sdev->numa_node, tx_cpu = -1;
198 siw_dbg(&sdev->base_dev,
283 struct siw_device *sdev = NULL;
287 sdev = ib_alloc_device(siw_device, base_dev);
288 if (!sdev)
291 base_dev = &sdev->base_dev;
292 sdev->netdev = netdev;
295 memcpy(sdev->raw_gid, netdev->dev_addr,
302 eth_random_addr(sdev->raw_gid);
304 addrconf_addr_eui48((u8 *)&base_dev->node_guid, sdev->raw_gid);
320 xa_init_flags(&sdev->qp_xa, XA_FLAGS_ALLOC1);
321 xa_init_flags(&sdev->mem_xa, XA_FLAGS_ALLOC1);
334 sdev->attrs.max_qp = SIW_MAX_QP;
335 sdev->attrs.max_qp_wr = SIW_MAX_QP_WR;
336 sdev->attrs.max_ord = SIW_MAX_ORD_QP;
337 sdev->attrs.max_ird = SIW_MAX_IRD_QP;
338 sdev->attrs.max_sge = SIW_MAX_SGE;
339 sdev->attrs.max_sge_rd = SIW_MAX_SGE_RD;
340 sdev->attrs.max_cq = SIW_MAX_CQ;
341 sdev->attrs.max_cqe = SIW_MAX_CQE;
342 sdev->attrs.max_mr = SIW_MAX_MR;
343 sdev->attrs.max_pd = SIW_MAX_PD;
344 sdev->attrs.max_mw = SIW_MAX_MW;
345 sdev->attrs.max_srq = SIW_MAX_SRQ;
346 sdev->attrs.max_srq_wr = SIW_MAX_SRQ_WR;
347 sdev->attrs.max_srq_sge = SIW_MAX_SGE;
349 INIT_LIST_HEAD(&sdev->cep_list);
350 INIT_LIST_HEAD(&sdev->qp_list);
352 atomic_set(&sdev->num_ctx, 0);
353 atomic_set(&sdev->num_srq, 0);
354 atomic_set(&sdev->num_qp, 0);
355 atomic_set(&sdev->num_cq, 0);
356 atomic_set(&sdev->num_mr, 0);
357 atomic_set(&sdev->num_pd, 0);
359 sdev->numa_node = dev_to_node(&netdev->dev);
360 spin_lock_init(&sdev->lock);
362 return sdev;
375 struct siw_device *sdev =
384 list_for_each_safe(pos, tmp, &sdev->qp_list) {
391 ib_device_put(&sdev->base_dev);
394 static void siw_device_goes_down(struct siw_device *sdev)
396 if (ib_device_try_get(&sdev->base_dev)) {
397 INIT_WORK(&sdev->netdev_down, siw_netdev_down);
398 schedule_work(&sdev->netdev_down);
407 struct siw_device *sdev;
415 sdev = to_siw_dev(base_dev);
419 sdev->state = IB_PORT_ACTIVE;
420 siw_port_event(sdev, 1, IB_EVENT_PORT_ACTIVE);
424 siw_device_goes_down(sdev);
428 sdev->state = IB_PORT_DOWN;
429 siw_port_event(sdev, 1, IB_EVENT_PORT_ERR);
442 ib_unregister_device_queued(&sdev->base_dev);
446 siw_port_event(sdev, 1, IB_EVENT_LID_CHANGE);
458 ib_device_put(&sdev->base_dev);
470 struct siw_device *sdev = NULL;
481 sdev = siw_device_create(netdev);
482 if (sdev) {
486 sdev->state = IB_PORT_ACTIVE;
488 sdev->state = IB_PORT_DOWN;
490 rv = siw_device_register(sdev, basedev_name);
492 ib_dealloc_device(&sdev->base_dev);