18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Copyright (c) 2015, 2017 Oracle. All rights reserved. 48c2ecf20Sopenharmony_ci */ 58c2ecf20Sopenharmony_ci 68c2ecf20Sopenharmony_ci/* rpcrdma.ko module initialization 78c2ecf20Sopenharmony_ci */ 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <linux/types.h> 108c2ecf20Sopenharmony_ci#include <linux/compiler.h> 118c2ecf20Sopenharmony_ci#include <linux/module.h> 128c2ecf20Sopenharmony_ci#include <linux/init.h> 138c2ecf20Sopenharmony_ci#include <linux/sunrpc/svc_rdma.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci#include <asm/swab.h> 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci#include "xprt_rdma.h" 188c2ecf20Sopenharmony_ci 198c2ecf20Sopenharmony_ci#define CREATE_TRACE_POINTS 208c2ecf20Sopenharmony_ci#include <trace/events/rpcrdma.h> 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ciMODULE_AUTHOR("Open Grid Computing and Network Appliance, Inc."); 238c2ecf20Sopenharmony_ciMODULE_DESCRIPTION("RPC/RDMA Transport"); 248c2ecf20Sopenharmony_ciMODULE_LICENSE("Dual BSD/GPL"); 258c2ecf20Sopenharmony_ciMODULE_ALIAS("svcrdma"); 268c2ecf20Sopenharmony_ciMODULE_ALIAS("xprtrdma"); 278c2ecf20Sopenharmony_ciMODULE_ALIAS("rpcrdma6"); 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_cistatic void __exit rpc_rdma_cleanup(void) 308c2ecf20Sopenharmony_ci{ 318c2ecf20Sopenharmony_ci xprt_rdma_cleanup(); 328c2ecf20Sopenharmony_ci svc_rdma_cleanup(); 338c2ecf20Sopenharmony_ci} 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_cistatic int __init rpc_rdma_init(void) 368c2ecf20Sopenharmony_ci{ 378c2ecf20Sopenharmony_ci int rc; 388c2ecf20Sopenharmony_ci 398c2ecf20Sopenharmony_ci rc = svc_rdma_init(); 408c2ecf20Sopenharmony_ci if (rc) 418c2ecf20Sopenharmony_ci goto out; 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci rc = xprt_rdma_init(); 448c2ecf20Sopenharmony_ci if (rc) 458c2ecf20Sopenharmony_ci svc_rdma_cleanup(); 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ciout: 488c2ecf20Sopenharmony_ci return rc; 498c2ecf20Sopenharmony_ci} 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_cimodule_init(rpc_rdma_init); 528c2ecf20Sopenharmony_cimodule_exit(rpc_rdma_cleanup); 53