qlcnic_sriov_common.c 818 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /*
  2. * QLogic qlcnic NIC Driver
  3. * Copyright (c) 2009-2013 QLogic Corporation
  4. *
  5. * See LICENSE.qlcnic for copyright and licensing details.
  6. */
  7. #include "qlcnic_sriov.h"
  8. #include "qlcnic.h"
  9. #include <linux/types.h>
  10. int qlcnic_sriov_init(struct qlcnic_adapter *adapter, int num_vfs)
  11. {
  12. struct qlcnic_sriov *sriov;
  13. if (!qlcnic_sriov_enable_check(adapter))
  14. return -EIO;
  15. sriov = kzalloc(sizeof(struct qlcnic_sriov), GFP_KERNEL);
  16. if (!sriov)
  17. return -ENOMEM;
  18. adapter->ahw->sriov = sriov;
  19. sriov->num_vfs = num_vfs;
  20. return 0;
  21. }
  22. void __qlcnic_sriov_cleanup(struct qlcnic_adapter *adapter)
  23. {
  24. if (!qlcnic_sriov_enable_check(adapter))
  25. return;
  26. kfree(adapter->ahw->sriov);
  27. }
  28. void qlcnic_sriov_cleanup(struct qlcnic_adapter *adapter)
  29. {
  30. if (qlcnic_sriov_pf_check(adapter))
  31. qlcnic_sriov_pf_cleanup(adapter);
  32. }