tree: git://linuxtv.org/media_tree.git master head: d0c8f6ad8b381dd572576ac50b9696d4d31142bb commit: 03fbdb2fc2b8bb27b0ee0534fd3e9c57cdc3854a [3288/3327] media: move videobuf2 to drivers/media/common config: x86_64-randconfig-s4-12300216 (attached as .config) compiler: gcc-7 (Debian 7.2.0-12) 7.2.1 20171025 reproduce: git checkout 03fbdb2fc2b8bb27b0ee0534fd3e9c57cdc3854a # save the attached .config to linux build tree make ARCH=x86_64 All errors (new ones prefixed by >>): drivers/media/common/videobuf/videobuf2-v4l2.o: In function `vb2_poll': >> drivers/media/common/videobuf/videobuf2-v4l2.c:678: undefined reference to `video_devdata' >> drivers/media/common/videobuf/videobuf2-v4l2.c:685: undefined reference to `v4l2_event_pending' drivers/media/common/videobuf/videobuf2-v4l2.o: In function `vb2_ioctl_reqbufs': drivers/media/common/videobuf/videobuf2-v4l2.c:714: undefined reference to `video_devdata' drivers/media/common/videobuf/videobuf2-v4l2.o: In function `vb2_ioctl_create_bufs': drivers/media/common/videobuf/videobuf2-v4l2.c:733: undefined reference to `video_devdata' drivers/media/common/videobuf/videobuf2-v4l2.o: In function `vb2_ioctl_prepare_buf': drivers/media/common/videobuf/videobuf2-v4l2.c:759: undefined reference to `video_devdata' drivers/media/common/videobuf/videobuf2-v4l2.o: In function `vb2_ioctl_querybuf': drivers/media/common/videobuf/videobuf2-v4l2.c:769: undefined reference to `video_devdata' drivers/media/common/videobuf/videobuf2-v4l2.o: In function `vb2_ioctl_qbuf': drivers/media/common/videobuf/videobuf2-v4l2.c:778: undefined reference to `video_devdata' drivers/media/common/videobuf/videobuf2-v4l2.o:drivers/media/common/videobuf/videobuf2-v4l2.c:788: more undefined references to `video_devdata' follow drivers/media/common/videobuf/videobuf2-v4l2.o: In function `_vb2_fop_release': >> drivers/media/common/videobuf/videobuf2-v4l2.c:848: undefined reference to `v4l2_fh_release' drivers/media/common/videobuf/videobuf2-v4l2.o: In function `vb2_fop_release': drivers/media/common/videobuf/videobuf2-v4l2.c:854: undefined reference to `video_devdata' drivers/media/common/videobuf/videobuf2-v4l2.o: In function `vb2_fop_write': drivers/media/common/videobuf/videobuf2-v4l2.c:864: undefined reference to `video_devdata' drivers/media/common/videobuf/videobuf2-v4l2.o: In function `vb2_fop_read': drivers/media/common/videobuf/videobuf2-v4l2.c:888: undefined reference to `video_devdata' drivers/media/common/videobuf/videobuf2-v4l2.o: In function `vb2_fop_poll': drivers/media/common/videobuf/videobuf2-v4l2.c:911: undefined reference to `video_devdata' vim +678 drivers/media/common/videobuf/videobuf2-v4l2.c 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 675 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 676 unsigned int vb2_poll(struct vb2_queue *q, struct file *file, poll_table *wait) 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 677 { 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 @678 struct video_device *vfd = video_devdata(file); 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 679 unsigned long req_events = poll_requested_events(wait); 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 680 unsigned int res = 0; 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 681 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 682 if (test_bit(V4L2_FL_USES_V4L2_FH, &vfd->flags)) { 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 683 struct v4l2_fh *fh = file->private_data; 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 684 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 @685 if (v4l2_event_pending(fh)) 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 686 res = POLLPRI; 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 687 else if (req_events & POLLPRI) 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 688 poll_wait(file, &fh->wait, wait); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 689 } 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 690 49d8ab9f drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-11-03 691 return res | vb2_core_poll(q, file, wait); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 692 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 693 EXPORT_SYMBOL_GPL(vb2_poll); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 694 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 695 /* 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 696 * The following functions are not part of the vb2 core API, but are helper 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 697 * functions that plug into struct v4l2_ioctl_ops, struct v4l2_file_operations 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 698 * and struct vb2_ops. 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 699 * They contain boilerplate code that most if not all drivers have to do 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 700 * and so they simplify the driver code. 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 701 */ 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 702 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 703 /* The queue is busy if there is a owner and you are not that owner. */ 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 704 static inline bool vb2_queue_is_busy(struct video_device *vdev, struct file *file) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 705 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 706 return vdev->queue->owner && vdev->queue->owner != file->private_data; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 707 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 708 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 709 /* vb2 ioctl helpers */ 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 710 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 711 int vb2_ioctl_reqbufs(struct file *file, void *priv, 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 712 struct v4l2_requestbuffers *p) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 713 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 714 struct video_device *vdev = video_devdata(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 715 int res = vb2_verify_memory_type(vdev->queue, p->memory, p->type); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 716 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 717 if (res) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 718 return res; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 719 if (vb2_queue_is_busy(vdev, file)) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 720 return -EBUSY; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 721 res = vb2_core_reqbufs(vdev->queue, p->memory, &p->count); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 722 /* If count == 0, then the owner has released all buffers and he 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 723 is no longer owner of the queue. Otherwise we have a new owner. */ 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 724 if (res == 0) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 725 vdev->queue->owner = p->count ? file->private_data : NULL; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 726 return res; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 727 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 728 EXPORT_SYMBOL_GPL(vb2_ioctl_reqbufs); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 729 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 730 int vb2_ioctl_create_bufs(struct file *file, void *priv, 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 731 struct v4l2_create_buffers *p) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 732 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 @733 struct video_device *vdev = video_devdata(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 734 int res = vb2_verify_memory_type(vdev->queue, p->memory, 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 735 p->format.type); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 736 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 737 p->index = vdev->queue->num_buffers; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 738 /* 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 739 * If count == 0, then just check if memory and type are valid. 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 740 * Any -EBUSY result from vb2_verify_memory_type can be mapped to 0. 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 741 */ 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 742 if (p->count == 0) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 743 return res != -EBUSY ? res : 0; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 744 if (res) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 745 return res; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 746 if (vb2_queue_is_busy(vdev, file)) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 747 return -EBUSY; df9ecb0c drivers/media/v4l2-core/videobuf2-v4l2.c Hans Verkuil 2015-10-28 748 df9ecb0c drivers/media/v4l2-core/videobuf2-v4l2.c Hans Verkuil 2015-10-28 749 res = vb2_create_bufs(vdev->queue, p); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 750 if (res == 0) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 751 vdev->queue->owner = file->private_data; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 752 return res; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 753 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 754 EXPORT_SYMBOL_GPL(vb2_ioctl_create_bufs); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 755 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 756 int vb2_ioctl_prepare_buf(struct file *file, void *priv, 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 757 struct v4l2_buffer *p) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 758 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 759 struct video_device *vdev = video_devdata(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 760 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 761 if (vb2_queue_is_busy(vdev, file)) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 762 return -EBUSY; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 763 return vb2_prepare_buf(vdev->queue, p); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 764 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 765 EXPORT_SYMBOL_GPL(vb2_ioctl_prepare_buf); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 766 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 767 int vb2_ioctl_querybuf(struct file *file, void *priv, struct v4l2_buffer *p) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 768 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 769 struct video_device *vdev = video_devdata(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 770 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 771 /* No need to call vb2_queue_is_busy(), anyone can query buffers. */ 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 772 return vb2_querybuf(vdev->queue, p); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 773 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 774 EXPORT_SYMBOL_GPL(vb2_ioctl_querybuf); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 775 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 776 int vb2_ioctl_qbuf(struct file *file, void *priv, struct v4l2_buffer *p) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 777 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 778 struct video_device *vdev = video_devdata(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 779 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 780 if (vb2_queue_is_busy(vdev, file)) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 781 return -EBUSY; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 782 return vb2_qbuf(vdev->queue, p); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 783 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 784 EXPORT_SYMBOL_GPL(vb2_ioctl_qbuf); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 785 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 786 int vb2_ioctl_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 787 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 788 struct video_device *vdev = video_devdata(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 789 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 790 if (vb2_queue_is_busy(vdev, file)) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 791 return -EBUSY; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 792 return vb2_dqbuf(vdev->queue, p, file->f_flags & O_NONBLOCK); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 793 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 794 EXPORT_SYMBOL_GPL(vb2_ioctl_dqbuf); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 795 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 796 int vb2_ioctl_streamon(struct file *file, void *priv, enum v4l2_buf_type i) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 797 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 798 struct video_device *vdev = video_devdata(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 799 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 800 if (vb2_queue_is_busy(vdev, file)) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 801 return -EBUSY; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 802 return vb2_streamon(vdev->queue, i); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 803 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 804 EXPORT_SYMBOL_GPL(vb2_ioctl_streamon); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 805 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 806 int vb2_ioctl_streamoff(struct file *file, void *priv, enum v4l2_buf_type i) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 807 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 808 struct video_device *vdev = video_devdata(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 809 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 810 if (vb2_queue_is_busy(vdev, file)) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 811 return -EBUSY; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 812 return vb2_streamoff(vdev->queue, i); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 813 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 814 EXPORT_SYMBOL_GPL(vb2_ioctl_streamoff); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 815 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 816 int vb2_ioctl_expbuf(struct file *file, void *priv, struct v4l2_exportbuffer *p) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 817 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 818 struct video_device *vdev = video_devdata(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 819 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 820 if (vb2_queue_is_busy(vdev, file)) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 821 return -EBUSY; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 822 return vb2_expbuf(vdev->queue, p); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 823 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 824 EXPORT_SYMBOL_GPL(vb2_ioctl_expbuf); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 825 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 826 /* v4l2_file_operations helpers */ 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 827 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 828 int vb2_fop_mmap(struct file *file, struct vm_area_struct *vma) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 829 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 830 struct video_device *vdev = video_devdata(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 831 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 832 return vb2_mmap(vdev->queue, vma); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 833 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 834 EXPORT_SYMBOL_GPL(vb2_fop_mmap); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 835 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 836 int _vb2_fop_release(struct file *file, struct mutex *lock) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 837 { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 838 struct video_device *vdev = video_devdata(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 839 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 840 if (lock) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 841 mutex_lock(lock); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 842 if (file->private_data == vdev->queue->owner) { 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 843 vb2_queue_release(vdev->queue); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 844 vdev->queue->owner = NULL; 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 845 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 846 if (lock) 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 847 mutex_unlock(lock); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 @848 return v4l2_fh_release(file); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 849 } 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 850 EXPORT_SYMBOL_GPL(_vb2_fop_release); 3c5be988 drivers/media/v4l2-core/videobuf2-v4l2.c Junghak Sung 2015-10-06 851 :::::: The code at line 678 was first introduced by commit :::::: 49d8ab9feaf20e7247edfdb36ce9ffa8db6b5f19 [media] media: videobuf2: Separate vb2_poll() :::::: TO: Junghak Sung <jh1009.sung@xxxxxxxxxxx> :::::: CC: Mauro Carvalho Chehab <mchehab@xxxxxxxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip