162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright (c) 2015, 2017 Oracle. All rights reserved. 462306a36Sopenharmony_ci */ 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci/* rpcrdma.ko module initialization 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <linux/types.h> 1062306a36Sopenharmony_ci#include <linux/compiler.h> 1162306a36Sopenharmony_ci#include <linux/module.h> 1262306a36Sopenharmony_ci#include <linux/init.h> 1362306a36Sopenharmony_ci#include <linux/sunrpc/svc_rdma.h> 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci#include <asm/swab.h> 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci#include "xprt_rdma.h" 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#define CREATE_TRACE_POINTS 2062306a36Sopenharmony_ci#include <trace/events/rpcrdma.h> 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciMODULE_AUTHOR("Open Grid Computing and Network Appliance, Inc."); 2362306a36Sopenharmony_ciMODULE_DESCRIPTION("RPC/RDMA Transport"); 2462306a36Sopenharmony_ciMODULE_LICENSE("Dual BSD/GPL"); 2562306a36Sopenharmony_ciMODULE_ALIAS("svcrdma"); 2662306a36Sopenharmony_ciMODULE_ALIAS("xprtrdma"); 2762306a36Sopenharmony_ciMODULE_ALIAS("rpcrdma6"); 2862306a36Sopenharmony_ci 2962306a36Sopenharmony_cistatic void __exit rpc_rdma_cleanup(void) 3062306a36Sopenharmony_ci{ 3162306a36Sopenharmony_ci xprt_rdma_cleanup(); 3262306a36Sopenharmony_ci svc_rdma_cleanup(); 3362306a36Sopenharmony_ci} 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_cistatic int __init rpc_rdma_init(void) 3662306a36Sopenharmony_ci{ 3762306a36Sopenharmony_ci int rc; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci rc = svc_rdma_init(); 4062306a36Sopenharmony_ci if (rc) 4162306a36Sopenharmony_ci goto out; 4262306a36Sopenharmony_ci 4362306a36Sopenharmony_ci rc = xprt_rdma_init(); 4462306a36Sopenharmony_ci if (rc) 4562306a36Sopenharmony_ci svc_rdma_cleanup(); 4662306a36Sopenharmony_ci 4762306a36Sopenharmony_ciout: 4862306a36Sopenharmony_ci return rc; 4962306a36Sopenharmony_ci} 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_cimodule_init(rpc_rdma_init); 5262306a36Sopenharmony_cimodule_exit(rpc_rdma_cleanup); 53