From: Yury Norov <yury.no...@gmail.com>

[ Upstream commit 525d6515604eb1373ce5e6372a6b6640953b2d6a ]

The smu_v1X_0_set_allowed_mask() uses bitmap_copy() to convert
bitmap to 32-bit array. This may be wrong due to endiannes issues.
Fix it by switching to bitmap_{from,to}_arr32.

CC: Alexander Gordeev <agord...@linux.ibm.com>
CC: Andy Shevchenko <andriy.shevche...@linux.intel.com>
CC: Christian Borntraeger <borntrae...@linux.ibm.com>
CC: Claudio Imbrenda <imbre...@linux.ibm.com>
CC: David Hildenbrand <da...@redhat.com>
CC: Heiko Carstens <h...@linux.ibm.com>
CC: Janosch Frank <fran...@linux.ibm.com>
CC: Rasmus Villemoes <li...@rasmusvillemoes.dk>
CC: Sven Schnelle <sv...@linux.ibm.com>
CC: Vasily Gorbik <g...@linux.ibm.com>
Signed-off-by: Yury Norov <yury.no...@gmail.com>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 2 +-
 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
index b87f550af26b..5f8809f6990d 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
@@ -781,7 +781,7 @@ int smu_v11_0_set_allowed_mask(struct smu_context *smu)
                goto failed;
        }
 
-       bitmap_copy((unsigned long *)feature_mask, feature->allowed, 64);
+       bitmap_to_arr32(feature_mask, feature->allowed, 64);
 
        ret = smu_cmn_send_smc_msg_with_param(smu, 
SMU_MSG_SetAllowedFeaturesMaskHigh,
                                          feature_mask[1], NULL);
diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c 
b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
index cf09e30bdfe0..747430ce6394 100644
--- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c
@@ -730,7 +730,7 @@ int smu_v13_0_set_allowed_mask(struct smu_context *smu)
            feature->feature_num < 64)
                return -EINVAL;
 
-       bitmap_copy((unsigned long *)feature_mask, feature->allowed, 64);
+       bitmap_to_arr32(feature_mask, feature->allowed, 64);
 
        ret = smu_cmn_send_smc_msg_with_param(smu, 
SMU_MSG_SetAllowedFeaturesMaskHigh,
                                              feature_mask[1], NULL);
-- 
2.35.1

Reply via email to