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' -- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/