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 */ |
