main.c (f22c30aa6d27597a6da665db1a5f099e4903ecc7) main.c (8010d74b9965b33182651767e9788ed84cf8e5f9)
1// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
2/*
3 * Copyright (c) 2013-2020, Mellanox Technologies inc. All rights reserved.
4 */
5
6#include <linux/debugfs.h>
7#include <linux/highmem.h>
8#include <linux/module.h>

--- 4788 unchanged lines hidden (view full) ---

4797 .remove = mlx5_ib_remove,
4798 .protocol = MLX5_INTERFACE_PROTOCOL_IB,
4799};
4800
4801static int __init mlx5_ib_init(void)
4802{
4803 int err;
4804
1// SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB
2/*
3 * Copyright (c) 2013-2020, Mellanox Technologies inc. All rights reserved.
4 */
5
6#include <linux/debugfs.h>
7#include <linux/highmem.h>
8#include <linux/module.h>

--- 4788 unchanged lines hidden (view full) ---

4797 .remove = mlx5_ib_remove,
4798 .protocol = MLX5_INTERFACE_PROTOCOL_IB,
4799};
4800
4801static int __init mlx5_ib_init(void)
4802{
4803 int err;
4804
4805 xlt_emergency_page = __get_free_page(GFP_KERNEL);
4805 xlt_emergency_page = (void *)__get_free_page(GFP_KERNEL);
4806 if (!xlt_emergency_page)
4807 return -ENOMEM;
4808
4809 mlx5_ib_event_wq = alloc_ordered_workqueue("mlx5_ib_event_wq", 0);
4810 if (!mlx5_ib_event_wq) {
4806 if (!xlt_emergency_page)
4807 return -ENOMEM;
4808
4809 mlx5_ib_event_wq = alloc_ordered_workqueue("mlx5_ib_event_wq", 0);
4810 if (!mlx5_ib_event_wq) {
4811 free_page(xlt_emergency_page);
4811 free_page((unsigned long)xlt_emergency_page);
4812 return -ENOMEM;
4813 }
4814
4815 mlx5_ib_odp_init();
4816
4817 err = mlx5_register_interface(&mlx5_ib_interface);
4818
4819 return err;
4820}
4821
4822static void __exit mlx5_ib_cleanup(void)
4823{
4824 mlx5_unregister_interface(&mlx5_ib_interface);
4825 destroy_workqueue(mlx5_ib_event_wq);
4812 return -ENOMEM;
4813 }
4814
4815 mlx5_ib_odp_init();
4816
4817 err = mlx5_register_interface(&mlx5_ib_interface);
4818
4819 return err;
4820}
4821
4822static void __exit mlx5_ib_cleanup(void)
4823{
4824 mlx5_unregister_interface(&mlx5_ib_interface);
4825 destroy_workqueue(mlx5_ib_event_wq);
4826 free_page(xlt_emergency_page);
4826 free_page((unsigned long)xlt_emergency_page);
4827}
4828
4829module_init(mlx5_ib_init);
4830module_exit(mlx5_ib_cleanup);
4827}
4828
4829module_init(mlx5_ib_init);
4830module_exit(mlx5_ib_cleanup);