From e9e57fce9e709dcec6985c127acc8d4c63904a63 Mon Sep 17 00:00:00 2001 From: Mahesh Sivasubramanian Date: Tue, 17 Jan 2017 11:19:21 -0700 Subject: [PATCH] soc: qcom: rpm: Use GENMASK APIs to generate bit masks The bit mask macro GEN_FIELD(24,8) causes overflow as it tries to shift by 32 bits. Using kernel's builtin GENMASK macro to avoid such overflows. Change-Id: I614a68eb009eb8b223a4da45349124a70c0a8134 Signed-off-by: Mahesh Sivasubramanian --- drivers/soc/qcom/rpm-smd.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/soc/qcom/rpm-smd.c b/drivers/soc/qcom/rpm-smd.c index 20f406b9a2f7..23328b4228d8 100644 --- a/drivers/soc/qcom/rpm-smd.c +++ b/drivers/soc/qcom/rpm-smd.c @@ -108,9 +108,7 @@ static struct glink_apps_rpm_data *glink_data; #define RPM_DATA_LEN_SIZE 16 #define RPM_HDR_SIZE ((rpm_msg_fmt_ver == RPM_MSG_V0_FMT) ?\ sizeof(struct rpm_v0_hdr) : sizeof(struct rpm_v1_hdr)) -#define GET_FIELD(offset, size) (((1U << (offset + size)) - 1) - \ - ((1U << offset) - 1)) -#define CLEAR_FIELD(offset, size) (~GET_FIELD(offset, size)) +#define CLEAR_FIELD(offset, size) (~GENMASK(offset + size - 1, offset)) static ATOMIC_NOTIFIER_HEAD(msm_rpm_sleep_notifier); static bool standalone; @@ -223,7 +221,7 @@ static uint32_t msm_rpm_get_next_msg_id(void); static inline uint32_t get_offset_value(uint32_t val, uint32_t offset, uint32_t size) { - return (((val) & GET_FIELD(offset, size)) + return (((val) & GENMASK(offset + size - 1, offset)) >> offset); }