2018-05-05 03:34:32 +08:00
|
|
|
// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
|
2015-06-04 23:21:42 +08:00
|
|
|
/*
|
2018-01-21 00:16:34 +08:00
|
|
|
* Copyright (c) 2015, 2017 Oracle. All rights reserved.
|
2015-06-04 23:21:42 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
/* rpcrdma.ko module initialization
|
|
|
|
*/
|
|
|
|
|
2018-01-21 00:16:34 +08:00
|
|
|
#include <linux/types.h>
|
|
|
|
#include <linux/compiler.h>
|
2015-06-04 23:21:42 +08:00
|
|
|
#include <linux/module.h>
|
|
|
|
#include <linux/init.h>
|
|
|
|
#include <linux/sunrpc/svc_rdma.h>
|
2024-06-05 03:45:24 +08:00
|
|
|
#include <linux/sunrpc/rdma_rn.h>
|
2015-06-04 23:21:42 +08:00
|
|
|
|
2018-01-21 00:16:34 +08:00
|
|
|
#include <asm/swab.h>
|
|
|
|
|
|
|
|
#include "xprt_rdma.h"
|
2015-06-04 23:21:42 +08:00
|
|
|
|
2018-05-08 03:27:05 +08:00
|
|
|
#define CREATE_TRACE_POINTS
|
|
|
|
#include <trace/events/rpcrdma.h>
|
|
|
|
|
2015-06-04 23:21:42 +08:00
|
|
|
MODULE_AUTHOR("Open Grid Computing and Network Appliance, Inc.");
|
|
|
|
MODULE_DESCRIPTION("RPC/RDMA Transport");
|
|
|
|
MODULE_LICENSE("Dual BSD/GPL");
|
|
|
|
MODULE_ALIAS("svcrdma");
|
|
|
|
MODULE_ALIAS("xprtrdma");
|
2020-11-07 05:33:38 +08:00
|
|
|
MODULE_ALIAS("rpcrdma6");
|
2015-06-04 23:21:42 +08:00
|
|
|
|
|
|
|
static void __exit rpc_rdma_cleanup(void)
|
|
|
|
{
|
|
|
|
xprt_rdma_cleanup();
|
|
|
|
svc_rdma_cleanup();
|
2024-06-05 03:45:24 +08:00
|
|
|
rpcrdma_ib_client_unregister();
|
2015-06-04 23:21:42 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
static int __init rpc_rdma_init(void)
|
|
|
|
{
|
|
|
|
int rc;
|
|
|
|
|
2024-06-05 03:45:24 +08:00
|
|
|
rc = rpcrdma_ib_client_register();
|
|
|
|
if (rc)
|
|
|
|
goto out_rc;
|
|
|
|
|
2015-06-04 23:21:42 +08:00
|
|
|
rc = svc_rdma_init();
|
|
|
|
if (rc)
|
2024-06-05 03:45:24 +08:00
|
|
|
goto out_ib_client;
|
2015-06-04 23:21:42 +08:00
|
|
|
|
|
|
|
rc = xprt_rdma_init();
|
|
|
|
if (rc)
|
2024-06-05 03:45:24 +08:00
|
|
|
goto out_svc_rdma;
|
2015-06-04 23:21:42 +08:00
|
|
|
|
2024-06-05 03:45:24 +08:00
|
|
|
return 0;
|
|
|
|
|
|
|
|
out_svc_rdma:
|
|
|
|
svc_rdma_cleanup();
|
|
|
|
out_ib_client:
|
|
|
|
rpcrdma_ib_client_unregister();
|
|
|
|
out_rc:
|
2015-06-04 23:21:42 +08:00
|
|
|
return rc;
|
|
|
|
}
|
|
|
|
|
|
|
|
module_init(rpc_rdma_init);
|
|
|
|
module_exit(rpc_rdma_cleanup);
|