···37373838/* @umem: umem object to scan3939 * @addr: ib virtual address requested by the user4040+ * @max_page_shift: high limit for page_shift - 0 means no limit4041 * @count: number of PAGE_SIZE pages covered by umem4142 * @shift: page shift for the compound pages found in the region4243 * @ncont: number of compund pages4344 * @order: log2 of the number of compound pages4445 */4545-void mlx5_ib_cont_pages(struct ib_umem *umem, u64 addr, int *count, int *shift,4646+void mlx5_ib_cont_pages(struct ib_umem *umem, u64 addr,4747+ unsigned long max_page_shift,4848+ int *count, int *shift,4649 int *ncont, int *order)4750{4851 unsigned long tmp;···7572 addr = addr >> page_shift;7673 tmp = (unsigned long)addr;7774 m = find_first_bit(&tmp, BITS_PER_LONG);7575+ if (max_page_shift)7676+ m = min_t(unsigned long, max_page_shift - page_shift, m);7877 skip = 1 << m;7978 mask = skip - 1;8079 i = 0;