staging: vchiq_core: get the rid of IS_POW2
The macro IS_POW2 is only used to ensure some size are powers of 2. Better use BUILD_BUG_ON_NOT_POWER_OF_2 for this. Since this must be done in a function, merge all these checks in a new function. Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com> Link: https://lore.kernel.org/r/1622735405-9980-5-git-send-email-stefan.wahren@i2se.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
b9fab6798a
commit
e63becb7f3
@ -124,12 +124,19 @@ enum {
|
||||
|
||||
/* we require this for consistency between endpoints */
|
||||
vchiq_static_assert(sizeof(struct vchiq_header) == 8);
|
||||
vchiq_static_assert(IS_POW2(sizeof(struct vchiq_header)));
|
||||
vchiq_static_assert(IS_POW2(VCHIQ_NUM_CURRENT_BULKS));
|
||||
vchiq_static_assert(IS_POW2(VCHIQ_NUM_SERVICE_BULKS));
|
||||
vchiq_static_assert(IS_POW2(VCHIQ_MAX_SERVICES));
|
||||
vchiq_static_assert(VCHIQ_VERSION >= VCHIQ_VERSION_MIN);
|
||||
|
||||
static inline void check_sizes(void)
|
||||
{
|
||||
BUILD_BUG_ON_NOT_POWER_OF_2(VCHIQ_SLOT_SIZE);
|
||||
BUILD_BUG_ON_NOT_POWER_OF_2(VCHIQ_MAX_SLOTS);
|
||||
BUILD_BUG_ON_NOT_POWER_OF_2(VCHIQ_MAX_SLOTS_PER_SIDE);
|
||||
BUILD_BUG_ON_NOT_POWER_OF_2(sizeof(struct vchiq_header));
|
||||
BUILD_BUG_ON_NOT_POWER_OF_2(VCHIQ_NUM_CURRENT_BULKS);
|
||||
BUILD_BUG_ON_NOT_POWER_OF_2(VCHIQ_NUM_SERVICE_BULKS);
|
||||
BUILD_BUG_ON_NOT_POWER_OF_2(VCHIQ_MAX_SERVICES);
|
||||
}
|
||||
|
||||
/* Run time control of log level, based on KERN_XXX level. */
|
||||
int vchiq_core_log_level = VCHIQ_LOG_DEFAULT;
|
||||
int vchiq_core_msg_log_level = VCHIQ_LOG_DEFAULT;
|
||||
@ -2206,6 +2213,8 @@ vchiq_init_slots(void *mem_base, int mem_size)
|
||||
int num_slots = (mem_size - mem_align)/VCHIQ_SLOT_SIZE;
|
||||
int first_data_slot = VCHIQ_SLOT_ZERO_SLOTS;
|
||||
|
||||
check_sizes();
|
||||
|
||||
/* Ensure there is enough memory to run an absolutely minimum system */
|
||||
num_slots -= first_data_slot;
|
||||
|
||||
|
@ -69,13 +69,6 @@
|
||||
extern int vchiq_static_assert[(cond) ? 1 : -1]
|
||||
#endif
|
||||
|
||||
#define IS_POW2(x) (x && ((x & (x - 1)) == 0))
|
||||
|
||||
/* Ensure that the slot size and maximum number of slots are powers of 2 */
|
||||
vchiq_static_assert(IS_POW2(VCHIQ_SLOT_SIZE));
|
||||
vchiq_static_assert(IS_POW2(VCHIQ_MAX_SLOTS));
|
||||
vchiq_static_assert(IS_POW2(VCHIQ_MAX_SLOTS_PER_SIDE));
|
||||
|
||||
#define VCHIQ_SLOT_MASK (VCHIQ_SLOT_SIZE - 1)
|
||||
#define VCHIQ_SLOT_QUEUE_MASK (VCHIQ_MAX_SLOTS_PER_SIDE - 1)
|
||||
#define VCHIQ_SLOT_ZERO_SLOTS DIV_ROUND_UP(sizeof(struct vchiq_slot_zero), \
|
||||
|
Loading…
x
Reference in New Issue
Block a user