[openib-general] [PATCH v2 02/13] Device Discovery and ULLD Linkage

Jan Engelhardt jengelh at linux01.gwdg.de
Sun Dec 3 08:03:35 PST 2006


Hi,



Some questions,suggestions,:

>+cxgb3_cpl_handler_func t3c_handlers[NUM_CPL_CMDS];

Can it be static'ified? (I suppose not.)

>+struct cxgb3_client t3c_client = {
>+	.name = "iw_cxgb3",
>+	.add = open_rnic_dev,
>+	.remove = close_rnic_dev,
>+	.handlers = t3c_handlers,
>+	.redirect = iwch_ep_redirect
>+};

Can it be const'ified?

>+static void rnic_init(struct iwch_dev *rnicp)
>+{
>+	PDBG("%s iwch_dev %p\n", __FUNCTION__,  rnicp);
>+	idr_init(&rnicp->cqidr);
>+	idr_init(&rnicp->qpidr);
>+	idr_init(&rnicp->mmidr);
>+	spin_lock_init(&rnicp->lock);
>+
>+	rnicp->attr.vendor_id = 0x168;
>+	rnicp->attr.vendor_part_id = 7;

Sugg.:

   typeof(rnicp->attr) *a = &rnicp->attr; // replace typeof with proper thing
   a->vendor_id = 0x168;
   a->vendor_part_id = 7;

shortens the lines a bit.

>+	rnicp->attr.max_qps = T3_MAX_NUM_QP - 32;
>+	rnicp->attr.max_wrs = (1UL << 24) - 1;
>+	rnicp->attr.max_sge_per_wr = T3_MAX_SGE;
>+	rnicp->attr.max_sge_per_rdma_write_wr = T3_MAX_SGE;
>+	rnicp->attr.max_cqs = T3_MAX_NUM_CQ - 1;
>+	rnicp->attr.max_cqes_per_cq = (1UL << 24) - 1;
>+	rnicp->attr.max_mem_regs = cxio_num_stags(&rnicp->rdev);
>+	rnicp->attr.max_phys_buf_entries = T3_MAX_PBL_SIZE;
>+	rnicp->attr.max_pds = T3_MAX_NUM_PD - 1;
>+	rnicp->attr.mem_pgsizes_bitmask = 0x7FFF;	/* 4KB-128MB */
>+	rnicp->attr.can_resize_wq = 0;
>+	rnicp->attr.max_rdma_reads_per_qp = 8;
>+	rnicp->attr.max_rdma_read_resources =
>+	    rnicp->attr.max_rdma_reads_per_qp * rnicp->attr.max_qps;
>+	rnicp->attr.max_rdma_read_qp_depth = 8;	/* IRD */
>+	rnicp->attr.max_rdma_read_depth =
>+	    rnicp->attr.max_rdma_read_qp_depth * rnicp->attr.max_qps;
>+	rnicp->attr.rq_overflow_handled = 0;
>+	rnicp->attr.can_modify_ird = 0;
>+	rnicp->attr.can_modify_ord = 0;
>+	rnicp->attr.max_mem_windows = rnicp->attr.max_mem_regs - 1;
>+	rnicp->attr.stag0_value = 1;
>+	rnicp->attr.zbva_support = 1;
>+	rnicp->attr.local_invalidate_fence = 1;
>+	rnicp->attr.cq_overflow_detection = 1;
>+	return;
>+}
>+
>--- /dev/null
>+++ b/drivers/infiniband/hw/cxgb3/iwch.h
>+static inline int t3b_device(struct iwch_dev *rhp)
>+{
>+	return (rhp->rdev.t3cdev_p->type == T3B);
>+}
>+
>+static inline int t3a_device(struct iwch_dev *rhp)
>+{
>+	return (rhp->rdev.t3cdev_p->type == T3A);
>+}

These two can be constified for sure: static inline int t3a_device(const 
struct iwch_dev *rhp)

>+
>+static inline struct iwch_cq *get_chp(struct iwch_dev *rhp, u32 cqid)
>+{
>+	return idr_find(&rhp->cqidr, cqid);
>+}
>+
>+static inline struct iwch_qp *get_qhp(struct iwch_dev *rhp, u32 qpid)
>+{
>+	return idr_find(&rhp->qpidr, qpid);
>+}
>+
>+static inline struct iwch_mr *get_mhp(struct iwch_dev *rhp, u32 mmid)
>+{
>+	return idr_find(&rhp->mmidr, mmid);
>+}

Here I am not sure.




	-`J'
-- 




More information about the general mailing list