cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

main.c (1661B)


      1// SPDX-License-Identifier: GPL-2.0
      2/*
      3 * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
      4 */
      5
      6#include "version.h"
      7#include "device.h"
      8#include "noise.h"
      9#include "queueing.h"
     10#include "ratelimiter.h"
     11#include "netlink.h"
     12
     13#include <uapi/linux/wireguard.h>
     14
     15#include <linux/init.h>
     16#include <linux/module.h>
     17#include <linux/genetlink.h>
     18#include <net/rtnetlink.h>
     19
     20static int __init wg_mod_init(void)
     21{
     22	int ret;
     23
     24	ret = wg_allowedips_slab_init();
     25	if (ret < 0)
     26		goto err_allowedips;
     27
     28#ifdef DEBUG
     29	ret = -ENOTRECOVERABLE;
     30	if (!wg_allowedips_selftest() || !wg_packet_counter_selftest() ||
     31	    !wg_ratelimiter_selftest())
     32		goto err_peer;
     33#endif
     34	wg_noise_init();
     35
     36	ret = wg_peer_init();
     37	if (ret < 0)
     38		goto err_peer;
     39
     40	ret = wg_device_init();
     41	if (ret < 0)
     42		goto err_device;
     43
     44	ret = wg_genetlink_init();
     45	if (ret < 0)
     46		goto err_netlink;
     47
     48	pr_info("WireGuard " WIREGUARD_VERSION " loaded. See www.wireguard.com for information.\n");
     49	pr_info("Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.\n");
     50
     51	return 0;
     52
     53err_netlink:
     54	wg_device_uninit();
     55err_device:
     56	wg_peer_uninit();
     57err_peer:
     58	wg_allowedips_slab_uninit();
     59err_allowedips:
     60	return ret;
     61}
     62
     63static void __exit wg_mod_exit(void)
     64{
     65	wg_genetlink_uninit();
     66	wg_device_uninit();
     67	wg_peer_uninit();
     68	wg_allowedips_slab_uninit();
     69}
     70
     71module_init(wg_mod_init);
     72module_exit(wg_mod_exit);
     73MODULE_LICENSE("GPL v2");
     74MODULE_DESCRIPTION("WireGuard secure network tunnel");
     75MODULE_AUTHOR("Jason A. Donenfeld <Jason@zx2c4.com>");
     76MODULE_VERSION(WIREGUARD_VERSION);
     77MODULE_ALIAS_RTNL_LINK(KBUILD_MODNAME);
     78MODULE_ALIAS_GENL_FAMILY(WG_GENL_NAME);