diff options
author | Ilan Tayari | 2017-03-26 16:01:57 +0200 |
---|---|---|
committer | Saeed Mahameed | 2017-06-27 15:36:47 +0200 |
commit | 52ec462eca9b87b8036209483efe1c6cf9c49d9a (patch) | |
tree | d36d192555f2407e49d3f77e44fb47e7337cbd0c /drivers/net/ethernet/mellanox/mlx5/core/fpga/core.h | |
parent | net/mlx5: Set interface flags before cleanup in unload_one (diff) | |
download | kernel-qcow2-linux-52ec462eca9b87b8036209483efe1c6cf9c49d9a.tar.gz kernel-qcow2-linux-52ec462eca9b87b8036209483efe1c6cf9c49d9a.tar.xz kernel-qcow2-linux-52ec462eca9b87b8036209483efe1c6cf9c49d9a.zip |
net/mlx5: Add reserved-gids support
Reserved GIDs are entries in the GID table in use by the mlx5_core
and its submodules (e.g. FPGA, SRIOV, E-Swtich, netdev).
The entries are reserved at the high indexes of the GID table.
A mlx5 submodule may reserve a certain amount of GIDs for its own use
during the load sequence by calling mlx5_core_reserve_gids, and must
also take care to un-reserve these GIDs when it closes.
Reservation is only allowed during the load sequence and before any
interfaces (e.g. mlx5_ib or mlx5_en) are up.
After reservation, a submodule may call mlx5_core_reserved_gid_alloc/
free to allocate entries from the reserved GIDs pool.
Reserve a GID table entry for every supported FPGA QP.
A later patch in the patchset will remove them from being reported to
IB core.
Another such patch will make use of these for FPGA QPs in Innova NIC.
Added lib/mlx5.h to serve as a library for mlx5 submodlues, and to
expose only public mlx5 API, more mlx5 library files will be added in
future submissions.
Signed-off-by: Ilan Tayari <ilant@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/fpga/core.h')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/fpga/core.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.h b/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.h index c55044d66778..557d83973ade 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/fpga/core.h @@ -71,6 +71,7 @@ struct mlx5_fpga_device { int mlx5_fpga_device_init(struct mlx5_core_dev *mdev); void mlx5_fpga_device_cleanup(struct mlx5_core_dev *mdev); int mlx5_fpga_device_start(struct mlx5_core_dev *mdev); +void mlx5_fpga_device_stop(struct mlx5_core_dev *mdev); void mlx5_fpga_event(struct mlx5_core_dev *mdev, u8 event, void *data); #else @@ -89,6 +90,10 @@ static inline int mlx5_fpga_device_start(struct mlx5_core_dev *mdev) return 0; } +static inline void mlx5_fpga_device_stop(struct mlx5_core_dev *mdev) +{ +} + static inline void mlx5_fpga_event(struct mlx5_core_dev *mdev, u8 event, void *data) { |