On Tue, Mar 15, 2022 at 07:56:13PM +0100, Geert Uytterhoeven wrote: > You're absolutely right. So the code should be changed to: > > if (vmalloced_buf || kmap_buf) { > - desc_len = min_t(unsigned int, max_seg_size, PAGE_SIZE); > + desc_len = min_t(unsigned long, max_seg_size, PAGE_SIZE); > sgs = DIV_ROUND_UP(len + offset_in_page(buf), desc_len); > } else if (virt_addr_valid(buf)) { > - desc_len = min_t(unsigned int, max_seg_size, ctlr->max_dma_len); > + desc_len = min_t(size_t, max_seg_size, ctlr->max_dma_len); > sgs = DIV_ROUND_UP(len, desc_len); > } else { > return -EINVAL; > } Can you send a patch please?