diff options
-rw-r--r-- | drivers/misc/cxl/base.c | 13 | ||||
-rw-r--r-- | drivers/misc/cxl/cxl.h | 12 | ||||
-rw-r--r-- | include/misc/cxl-base.h | 4 |
3 files changed, 17 insertions, 12 deletions
diff --git a/drivers/misc/cxl/base.c b/drivers/misc/cxl/base.c index 2330980bdde2..7557835cdfcd 100644 --- a/drivers/misc/cxl/base.c +++ b/drivers/misc/cxl/base.c | |||
@@ -54,6 +54,19 @@ static inline void cxl_calls_put(struct cxl_calls *calls) { } | |||
54 | 54 | ||
55 | #endif /* CONFIG_CXL_MODULE */ | 55 | #endif /* CONFIG_CXL_MODULE */ |
56 | 56 | ||
57 | /* AFU refcount management */ | ||
58 | struct cxl_afu *cxl_afu_get(struct cxl_afu *afu) | ||
59 | { | ||
60 | return (get_device(&afu->dev) == NULL) ? NULL : afu; | ||
61 | } | ||
62 | EXPORT_SYMBOL_GPL(cxl_afu_get); | ||
63 | |||
64 | void cxl_afu_put(struct cxl_afu *afu) | ||
65 | { | ||
66 | put_device(&afu->dev); | ||
67 | } | ||
68 | EXPORT_SYMBOL_GPL(cxl_afu_put); | ||
69 | |||
57 | void cxl_slbia(struct mm_struct *mm) | 70 | void cxl_slbia(struct mm_struct *mm) |
58 | { | 71 | { |
59 | struct cxl_calls *calls; | 72 | struct cxl_calls *calls; |
diff --git a/drivers/misc/cxl/cxl.h b/drivers/misc/cxl/cxl.h index 36b3237fc2b1..d4aae6f855a8 100644 --- a/drivers/misc/cxl/cxl.h +++ b/drivers/misc/cxl/cxl.h | |||
@@ -440,18 +440,6 @@ struct cxl_afu { | |||
440 | bool enabled; | 440 | bool enabled; |
441 | }; | 441 | }; |
442 | 442 | ||
443 | /* AFU refcount management */ | ||
444 | static inline struct cxl_afu *cxl_afu_get(struct cxl_afu *afu) | ||
445 | { | ||
446 | |||
447 | return (get_device(&afu->dev) == NULL) ? NULL : afu; | ||
448 | } | ||
449 | |||
450 | static inline void cxl_afu_put(struct cxl_afu *afu) | ||
451 | { | ||
452 | put_device(&afu->dev); | ||
453 | } | ||
454 | |||
455 | 443 | ||
456 | struct cxl_irq_name { | 444 | struct cxl_irq_name { |
457 | struct list_head list; | 445 | struct list_head list; |
diff --git a/include/misc/cxl-base.h b/include/misc/cxl-base.h index 5ae962512fb8..f53808fa638a 100644 --- a/include/misc/cxl-base.h +++ b/include/misc/cxl-base.h | |||
@@ -36,11 +36,15 @@ static inline void cxl_ctx_put(void) | |||
36 | atomic_dec(&cxl_use_count); | 36 | atomic_dec(&cxl_use_count); |
37 | } | 37 | } |
38 | 38 | ||
39 | struct cxl_afu *cxl_afu_get(struct cxl_afu *afu); | ||
40 | void cxl_afu_put(struct cxl_afu *afu); | ||
39 | void cxl_slbia(struct mm_struct *mm); | 41 | void cxl_slbia(struct mm_struct *mm); |
40 | 42 | ||
41 | #else /* CONFIG_CXL_BASE */ | 43 | #else /* CONFIG_CXL_BASE */ |
42 | 44 | ||
43 | static inline bool cxl_ctx_in_use(void) { return false; } | 45 | static inline bool cxl_ctx_in_use(void) { return false; } |
46 | static inline struct cxl_afu *cxl_afu_get(struct cxl_afu *afu) { return NULL; } | ||
47 | static inline void cxl_afu_put(struct cxl_afu *afu) {} | ||
44 | static inline void cxl_slbia(struct mm_struct *mm) {} | 48 | static inline void cxl_slbia(struct mm_struct *mm) {} |
45 | 49 | ||
46 | #endif /* CONFIG_CXL_BASE */ | 50 | #endif /* CONFIG_CXL_BASE */ |