Offering: HULK hulk inclusion category: bugfix bugzilla: https://atomgit.com/src-openeuler/kernel/issues/19925 -------------------------------- Last commit changes ib_umem_find_best_pgsz function signature. unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem, unsigned long pgsz_bitmap, - unsigned long virt) + u64 virt) The u64 virt change will break the kABI. u64 is equivalent to unsigned long long on Linux kernel, use unsigned long KABI_ADD_MODIFIER(long) to fix this problem. Fixes: c89b50342035 ("[Backport] RDMA/umem: Be careful about boundary conditions in ib_umem_find_best_pgsz()") Signed-off-by: Yao Yiqi <yaoyiqi3@huawei.com> --- drivers/infiniband/core/umem.c | 2 +- include/rdma/ib_umem.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c index f1e67635472f..3ce0463c0752 100644 --- a/drivers/infiniband/core/umem.c +++ b/drivers/infiniband/core/umem.c @@ -81,7 +81,7 @@ static void __ib_umem_release(struct ib_device *dev, struct ib_umem *umem, int d */ unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem, unsigned long pgsz_bitmap, - u64 virt) + unsigned long KABI_ADD_MODIFIER(long) virt) { unsigned long curr_len = 0; dma_addr_t curr_base = ~0; diff --git a/include/rdma/ib_umem.h b/include/rdma/ib_umem.h index eee0ad8f94c2..18feb7687daa 100644 --- a/include/rdma/ib_umem.h +++ b/include/rdma/ib_umem.h @@ -125,7 +125,7 @@ int ib_umem_copy_from(void *dst, struct ib_umem *umem, size_t offset, size_t length); unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem, unsigned long pgsz_bitmap, - u64 virt); + unsigned long KABI_ADD_MODIFIER(long) virt); /** * ib_umem_find_best_pgoff - Find best HW page size @@ -205,7 +205,7 @@ static inline int ib_umem_copy_from(void *dst, struct ib_umem *umem, size_t offs } static inline unsigned long ib_umem_find_best_pgsz(struct ib_umem *umem, unsigned long pgsz_bitmap, - u64 virt) + unsigned long KABI_ADD_MODIFIER(long) virt) { return 0; } -- 2.34.1