mirror of
https://github.com/tbsdtv/media_build.git
synced 2025-07-23 04:13:02 +02:00
Update backport patches for kernels <5.7
This commit is contained in:
@@ -106,7 +106,6 @@ add v5.7_pin_user_pages.patch
|
||||
add v5.7_define_seq_attribute.patch
|
||||
|
||||
[5.6.1023]
|
||||
add v5.6_pin_user_pages.patch
|
||||
add v5.6_const_fb_ops.patch
|
||||
add v5.6_pm_runtime_get_if_active.patch
|
||||
|
||||
|
@@ -1,33 +0,0 @@
|
||||
diff --git a/drivers/media/v4l2-core/videobuf-dma-sg.c b/drivers/media/v4l2-core/videobuf-dma-sg.c
|
||||
index 234e9f647c96..91f5d9c3a7b7 100644
|
||||
--- a/drivers/media/v4l2-core/videobuf-dma-sg.c
|
||||
+++ b/drivers/media/v4l2-core/videobuf-dma-sg.c
|
||||
@@ -179,12 +179,12 @@ static int videobuf_dma_init_user_locked(struct videobuf_dmabuf *dma,
|
||||
dprintk(1, "init user [0x%lx+0x%lx => %lu pages]\n",
|
||||
data, size, dma->nr_pages);
|
||||
|
||||
- err = pin_user_pages(data & PAGE_MASK, dma->nr_pages, gup_flags,
|
||||
+ err = get_user_pages(data & PAGE_MASK, dma->nr_pages, gup_flags,
|
||||
dma->pages, NULL);
|
||||
|
||||
if (err != dma->nr_pages) {
|
||||
dma->nr_pages = (err >= 0) ? err : 0;
|
||||
- dprintk(1, "pin_user_pages: err=%d [%lu]\n", err,
|
||||
+ dprintk(1, "get_user_pages: err=%d [%lu]\n", err,
|
||||
dma->nr_pages);
|
||||
return err < 0 ? err : -EINVAL;
|
||||
}
|
||||
@@ -345,8 +345,11 @@ int videobuf_dma_free(struct videobuf_dmabuf *dma)
|
||||
BUG_ON(dma->sglen);
|
||||
|
||||
if (dma->pages) {
|
||||
- unpin_user_pages_dirty_lock(dma->pages, dma->nr_pages,
|
||||
- dma->direction == DMA_FROM_DEVICE);
|
||||
+ for (i = 0; i < dma->nr_pages; i++) {
|
||||
+ if (dma->direction == DMA_FROM_DEVICE)
|
||||
+ set_page_dirty_lock(dma->pages[i]);
|
||||
+ put_page(dma->pages[i]);
|
||||
+ }
|
||||
kfree(dma->pages);
|
||||
dma->pages = NULL;
|
||||
}
|
@@ -41,105 +41,3 @@ index 32fa4a7fe76f..f7650cb8361e 100644
|
||||
#include <media/v4l2-ioctl.h>
|
||||
|
||||
#include "bttvp.h"
|
||||
diff --git a/drivers/media/v4l2-core/videobuf-core.c b/drivers/media/v4l2-core/videobuf-core.c
|
||||
index 606a271bdd2d..8a64019170ea 100644
|
||||
--- a/drivers/media/v4l2-core/videobuf-core.c
|
||||
+++ b/drivers/media/v4l2-core/videobuf-core.c
|
||||
@@ -535,7 +535,7 @@ int videobuf_qbuf(struct videobuf_queue *q, struct v4l2_buffer *b)
|
||||
MAGIC_CHECK(q->int_ops->magic, MAGIC_QTYPE_OPS);
|
||||
|
||||
if (b->memory == V4L2_MEMORY_MMAP)
|
||||
- mmap_read_lock(current->mm);
|
||||
+ down_read(¤t->mm->mmap_sem);
|
||||
|
||||
videobuf_queue_lock(q);
|
||||
retval = -EBUSY;
|
||||
@@ -622,7 +622,7 @@ int videobuf_qbuf(struct videobuf_queue *q, struct v4l2_buffer *b)
|
||||
videobuf_queue_unlock(q);
|
||||
|
||||
if (b->memory == V4L2_MEMORY_MMAP)
|
||||
- mmap_read_unlock(current->mm);
|
||||
+ up_read(¤t->mm->mmap_sem);
|
||||
|
||||
return retval;
|
||||
}
|
||||
diff --git a/drivers/media/v4l2-core/videobuf-dma-contig.c b/drivers/media/v4l2-core/videobuf-dma-contig.c
|
||||
index 52312ce2ba05..aeb2f497c683 100644
|
||||
--- a/drivers/media/v4l2-core/videobuf-dma-contig.c
|
||||
+++ b/drivers/media/v4l2-core/videobuf-dma-contig.c
|
||||
@@ -169,7 +169,7 @@ static int videobuf_dma_contig_user_get(struct videobuf_dma_contig_memory *mem,
|
||||
mem->size = PAGE_ALIGN(vb->size + offset);
|
||||
ret = -EINVAL;
|
||||
|
||||
- mmap_read_lock(mm);
|
||||
+ down_read(&mm->mmap_sem);
|
||||
|
||||
vma = find_vma(mm, untagged_baddr);
|
||||
if (!vma)
|
||||
@@ -201,7 +201,7 @@ static int videobuf_dma_contig_user_get(struct videobuf_dma_contig_memory *mem,
|
||||
}
|
||||
|
||||
out_up:
|
||||
- mmap_read_unlock(current->mm);
|
||||
+ up_read(¤t->mm->mmap_sem);
|
||||
|
||||
return ret;
|
||||
}
|
||||
diff --git a/drivers/media/v4l2-core/videobuf-dma-sg.c b/drivers/media/v4l2-core/videobuf-dma-sg.c
|
||||
index 8dd0562de287..1160b42fcf9c 100644
|
||||
--- a/drivers/media/v4l2-core/videobuf-dma-sg.c
|
||||
+++ b/drivers/media/v4l2-core/videobuf-dma-sg.c
|
||||
@@ -21,13 +21,13 @@
|
||||
#include <linux/sched/mm.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/interrupt.h>
|
||||
-#include <linux/pgtable.h>
|
||||
|
||||
#include <linux/dma-mapping.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <linux/scatterlist.h>
|
||||
#include <asm/page.h>
|
||||
+#include <asm/pgtable.h>
|
||||
|
||||
#include <media/videobuf-dma-sg.h>
|
||||
|
||||
@@ -200,9 +200,9 @@ static int videobuf_dma_init_user(struct videobuf_dmabuf *dma, int direction,
|
||||
{
|
||||
int ret;
|
||||
|
||||
- mmap_read_lock(current->mm);
|
||||
+ down_read(¤t->mm->mmap_sem);
|
||||
ret = videobuf_dma_init_user_locked(dma, direction, data, size);
|
||||
- mmap_read_unlock(current->mm);
|
||||
+ up_read(¤t->mm->mmap_sem);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -535,7 +535,7 @@ static int __videobuf_iolock(struct videobuf_queue *q,
|
||||
} else {
|
||||
/* NOTE: HACK: videobuf_iolock on V4L2_MEMORY_MMAP
|
||||
buffers can only be called from videobuf_qbuf
|
||||
- we take current->mm->mmap_lock there, to prevent
|
||||
+ we take current->mm->mmap_sem there, to prevent
|
||||
locking inversion, so don't take it here */
|
||||
|
||||
err = videobuf_dma_init_user_locked(&mem->dma,
|
||||
diff --git a/drivers/media/v4l2-core/videobuf-vmalloc.c b/drivers/media/v4l2-core/videobuf-vmalloc.c
|
||||
index 9b2443720ab0..f8bd5a369560 100644
|
||||
--- a/drivers/media/v4l2-core/videobuf-vmalloc.c
|
||||
+++ b/drivers/media/v4l2-core/videobuf-vmalloc.c
|
||||
@@ -15,12 +15,12 @@
|
||||
#include <linux/moduleparam.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/interrupt.h>
|
||||
-#include <linux/pgtable.h>
|
||||
|
||||
#include <linux/pci.h>
|
||||
#include <linux/vmalloc.h>
|
||||
#include <linux/pagemap.h>
|
||||
#include <asm/page.h>
|
||||
+#include <asm/pgtable.h>
|
||||
|
||||
#include <media/videobuf-vmalloc.h>
|
||||
|
||||
|
Reference in New Issue
Block a user