Commit 4997870a authored by Dennis Dalessandro's avatar Dennis Dalessandro Committed by Doug Ledford

IB/rdmavt: Macroize override checks during driver registration

Add a macro to cut down on writing the same lines over and over again for
what will be a large number of functions that will be supported.
Reviewed-by: default avatarMike Marciniszyn <mike.marciniszyn@intel.com>
Reviewed-by: default avatarIra Weiny <ira.weiny@intel.com>
Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent b1070a7a
...@@ -64,29 +64,25 @@ static void rvt_cleanup(void) ...@@ -64,29 +64,25 @@ static void rvt_cleanup(void)
} }
module_exit(rvt_cleanup); module_exit(rvt_cleanup);
/*
* Check driver override. If driver passes a value use it, otherwise we use our
* own value.
*/
#define CHECK_DRIVER_OVERRIDE(rdi, x) \
rdi->ibdev.x = rdi->ibdev.x ? : rvt_ ##x
int rvt_register_device(struct rvt_dev_info *rdi) int rvt_register_device(struct rvt_dev_info *rdi)
{ {
if (!rdi) if (!rdi)
return -EINVAL; return -EINVAL;
/*
* Drivers have the option to override anything in the ibdev that they
* want to specifically handle. VT needs to check for things it supports
* and if the driver wants to handle that functionality let it. We may
* come up with a better mechanism that simplifies the code at some
* point.
*/
/* DMA Operations */ /* DMA Operations */
rdi->ibdev.dma_ops = rdi->ibdev.dma_ops =
rdi->ibdev.dma_ops ? : &rvt_default_dma_mapping_ops; rdi->ibdev.dma_ops ? : &rvt_default_dma_mapping_ops;
/* Protection Domain */ /* Protection Domain */
rdi->ibdev.alloc_pd = CHECK_DRIVER_OVERRIDE(rdi, alloc_pd);
rdi->ibdev.alloc_pd ? : rvt_alloc_pd; CHECK_DRIVER_OVERRIDE(rdi, dealloc_pd);
rdi->ibdev.dealloc_pd =
rdi->ibdev.dealloc_pd ? : rvt_dealloc_pd;
spin_lock_init(&rdi->n_pds_lock); spin_lock_init(&rdi->n_pds_lock);
rdi->n_pds_allocated = 0; rdi->n_pds_allocated = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment