History

cxl: Move cxl_afu_get / cxl_afu_put to base

The Mellanox CX4 uses a model where the AFU is one physical function of the device, and is used by other peer physical functions of the same device. This will require those other devices to grab a reference on the AFU when they are initialised to make sure that it does not go away during their lifetime. Move the AFU refcount functions to base.c so they can be called from the PHB code.

Ian Munsie committed 10 years ago

Commit 62ccf2d1 parent 48b3adf3 files · +17 −12Browse files

Showing the changes to include/misc (1 of 3 files). Show all

Unified · Split

include/misc/cxl-base.h+4−0
@@ -36,11 +36,15 @@ static inline void cxl_ctx_put(void) · 35 unmodified lines
36 atomic_dec(&cxl_use_count);36 atomic_dec(&cxl_use_count);
37}37}
38 38
39struct cxl_afu *cxl_afu_get(struct cxl_afu *afu);
40void cxl_afu_put(struct cxl_afu *afu);
39void cxl_slbia(struct mm_struct *mm);41void cxl_slbia(struct mm_struct *mm);
40 42
41#else /* CONFIG_CXL_BASE */43#else /* CONFIG_CXL_BASE */
42 44
43static inline bool cxl_ctx_in_use(void) { return false; }45static inline bool cxl_ctx_in_use(void) { return false; }
46static inline struct cxl_afu *cxl_afu_get(struct cxl_afu *afu) { return NULL; }
47static inline void cxl_afu_put(struct cxl_afu *afu) {}
44static inline void cxl_slbia(struct mm_struct *mm) {}48static inline void cxl_slbia(struct mm_struct *mm) {}
45 49
46#endif /* CONFIG_CXL_BASE */50#endif /* CONFIG_CXL_BASE */