CC: [email protected] TO: "Lars-Peter Clausen" <[email protected]> CC: Jonathan Cameron <[email protected]> CC: Alexandru Ardelean <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git testing head: 0fd146b288591a8139220fec417dfc5652820480 commit: b9ad66ba4db6f349aa795ed59c3e42d4208844fa [47/53] iio: buffer-dma: Add mmap support :::::: branch date: 22 hours ago :::::: commit date: 22 hours ago compiler: or1k-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> cppcheck possible warnings: (new ones prefixed by >>, may not real problems) >> drivers/iio/buffer/industrialio-buffer-dma.c:669:11: warning: Unsigned >> variable 'i' can't be negative so it is unnecessary to test it. >> [unsignedPositive] for (; i >= 0; i--) ^ vim +669 drivers/iio/buffer/industrialio-buffer-dma.c 670b19ae9bfdbc Lars-Peter Clausen 2015-10-13 603 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 604 int iio_dma_buffer_alloc_blocks(struct iio_buffer *buffer, b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 605 struct iio_buffer_block_alloc_req *req) b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 606 { b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 607 struct iio_dma_buffer_queue *queue = iio_buffer_to_queue(buffer); b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 608 struct iio_dma_buffer_block **blocks; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 609 unsigned int num_blocks; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 610 unsigned int i; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 611 int ret = 0; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 612 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 613 mutex_lock(&queue->lock); b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 614 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 615 /* b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 616 * If the buffer is enabled and in fileio mode new blocks can't be b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 617 * allocated. b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 618 */ b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 619 if (queue->fileio.enabled) { b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 620 ret = -EBUSY; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 621 goto err_unlock; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 622 } b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 623 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 624 /* Free memory that might be in use for fileio mode */ b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 625 iio_dma_buffer_fileio_free(queue); b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 626 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 627 /* 64 blocks ought to be enough for anybody ;) */ b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 628 if (req->count > 64 - queue->num_blocks) b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 629 req->count = 64 - queue->num_blocks; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 630 if (req->size > iio_dma_buffer_max_block_size) b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 631 req->size = iio_dma_buffer_max_block_size; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 632 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 633 req->id = queue->num_blocks; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 634 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 635 if (req->count == 0 || req->size == 0) { b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 636 ret = 0; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 637 goto err_unlock; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 638 } b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 639 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 640 num_blocks = req->count + queue->num_blocks; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 641 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 642 blocks = krealloc(queue->blocks, sizeof(*blocks) * num_blocks, b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 643 GFP_KERNEL); b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 644 if (!blocks) { b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 645 ret = -ENOMEM; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 646 goto err_unlock; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 647 } b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 648 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 649 for (i = queue->num_blocks; i < num_blocks; i++) { b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 650 blocks[i] = iio_dma_buffer_alloc_block(queue, req->size); b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 651 if (!blocks[i]) { b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 652 ret = -ENOMEM; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 653 goto err_unwind; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 654 } b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 655 blocks[i]->block.id = i; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 656 blocks[i]->block.data.offset = queue->max_offset; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 657 queue->max_offset += PAGE_ALIGN(req->size); b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 658 } b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 659 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 660 req->count = i - queue->num_blocks; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 661 queue->num_blocks = i; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 662 queue->blocks = blocks; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 663 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 664 mutex_unlock(&queue->lock); b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 665 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 666 return 0; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 667 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 668 err_unwind: b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 @669 for (; i >= 0; i--) b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 670 iio_buffer_block_put(blocks[i]); b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 671 kfree(blocks); b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 672 err_unlock: b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 673 mutex_unlock(&queue->lock); b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 674 b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 675 return ret; b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 676 } b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 677 EXPORT_SYMBOL_GPL(iio_dma_buffer_alloc_blocks); b9ad66ba4db6f3 Lars-Peter Clausen 2021-02-15 678 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected] _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
