[PATCH v2 3/4] staging: media: atomisp: inline the check_bo_status_*() macros
From: Nikolay Kulikov
Date: Thu Jul 23 2026 - 15:12:55 EST
These macros check a bit in the bo->status field. Replace them with
conditional expressions to make the code clearer.
Signed-off-by: Nikolay Kulikov <nikolayof23@xxxxxxxxx>
---
.../media/atomisp/include/hmm/hmm_bo.h | 12 --------
.../media/atomisp/include/hmm/hmm_common.h | 18 -----------
.../staging/media/atomisp/pci/hmm/hmm_bo.c | 30 ++++++++++++-------
3 files changed, 20 insertions(+), 40 deletions(-)
diff --git a/drivers/staging/media/atomisp/include/hmm/hmm_bo.h b/drivers/staging/media/atomisp/include/hmm/hmm_bo.h
index e974ab5ca2fc..69cf490bd88c 100644
--- a/drivers/staging/media/atomisp/include/hmm/hmm_bo.h
+++ b/drivers/staging/media/atomisp/include/hmm/hmm_bo.h
@@ -19,18 +19,6 @@
#include "hmm/hmm_common.h"
#include "ia_css_types.h"
-#define check_bo_status_yes_goto(bo, _status, label) \
- var_not_equal_goto((bo->status & (_status)), (_status), \
- label, \
- "HMM buffer status not contain %s.\n", \
- #_status)
-
-#define check_bo_status_no_goto(bo, _status, label) \
- var_equal_goto((bo->status & (_status)), (_status), \
- label, \
- "HMM buffer status contains %s.\n", \
- #_status)
-
#define rbtree_node_to_hmm_bo(root_node) \
container_of((root_node), struct hmm_buffer_object, node)
diff --git a/drivers/staging/media/atomisp/include/hmm/hmm_common.h b/drivers/staging/media/atomisp/include/hmm/hmm_common.h
index f215130e5e17..c406fe8b1345 100644
--- a/drivers/staging/media/atomisp/include/hmm/hmm_common.h
+++ b/drivers/staging/media/atomisp/include/hmm/hmm_common.h
@@ -33,22 +33,4 @@
} \
} while (0)
-#define var_equal_goto(var1, var2, label, fmt, arg ...) \
- do { \
- if ((var1) == (var2)) { \
- dev_err(atomisp_dev, \
- fmt, ## arg); \
- goto label;\
- } \
- } while (0)
-
-#define var_not_equal_goto(var1, var2, label, fmt, arg ...) \
- do { \
- if ((var1) != (var2)) { \
- dev_err(atomisp_dev, \
- fmt, ## arg); \
- goto label;\
- } \
- } while (0)
-
#endif
diff --git a/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c b/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c
index b9949cc080e5..e92538ab025e 100644
--- a/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c
+++ b/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c
@@ -687,7 +687,10 @@ int hmm_bo_alloc_pages(struct hmm_buffer_object *bo,
}
mutex_lock(&bo->mutex);
- check_bo_status_no_goto(bo, HMM_BO_PAGE_ALLOCED, status_err);
+ if (bo->status & HMM_BO_PAGE_ALLOCED) {
+ dev_err(atomisp_dev, "HMM buffer status contains HMM_BO_PAGE_ALLOCED.\n");
+ goto status_err;
+ }
bo->pages = kzalloc_objs(struct page *, bo->pgnr);
if (unlikely(!bo->pages)) {
@@ -738,7 +741,10 @@ void hmm_bo_free_pages(struct hmm_buffer_object *bo)
mutex_lock(&bo->mutex);
- check_bo_status_yes_goto(bo, HMM_BO_PAGE_ALLOCED, status_err2);
+ if (!(bo->status & HMM_BO_PAGE_ALLOCED)) {
+ dev_err(atomisp_dev, "HMM buffer status not contain HMM_BO_PAGE_ALLOCED.\n");
+ goto status_err2;
+ }
/* clear the flag anyway. */
bo->status &= (~HMM_BO_PAGE_ALLOCED);
@@ -788,11 +794,15 @@ int hmm_bo_bind(struct hmm_buffer_object *bo)
mutex_lock(&bo->mutex);
- check_bo_status_yes_goto(bo,
- HMM_BO_PAGE_ALLOCED | HMM_BO_ALLOCED,
- status_err1);
+ if (!(bo->status & (HMM_BO_PAGE_ALLOCED | HMM_BO_ALLOCED))) {
+ dev_err(atomisp_dev, "HMM buffer status not contain HMM_BO_PAGE_ALLOCED | HMM_BO_ALLOCED.\n");
+ goto status_err1;
+ }
- check_bo_status_no_goto(bo, HMM_BO_BINDED, status_err2);
+ if (bo->status & HMM_BO_BINDED) {
+ dev_err(atomisp_dev, "HMM buffer status contains HMM_BO_BINDED.\n");
+ goto status_err2;
+ }
bdev = bo->bdev;
@@ -868,10 +878,10 @@ void hmm_bo_unbind(struct hmm_buffer_object *bo)
mutex_lock(&bo->mutex);
- check_bo_status_yes_goto(bo,
- HMM_BO_PAGE_ALLOCED |
- HMM_BO_ALLOCED |
- HMM_BO_BINDED, status_err);
+ if (!(bo->status & (HMM_BO_PAGE_ALLOCED | HMM_BO_ALLOCED | HMM_BO_BINDED))) {
+ dev_err(atomisp_dev, "HMM buffer status not contain HMM_BO_PAGE_ALLOCED | HMM_BO_ALLOCED | HMM_BO_BINDED.\n");
+ goto status_err;
+ }
bdev = bo->bdev;
--
2.55.0