]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
media: atomisp: fix __user annotations
authorMauro Carvalho Chehab <mchehab@s-opensource.com>
Fri, 6 Apr 2018 18:08:37 +0000 (14:08 -0400)
committerMauro Carvalho Chehab <mchehab@s-opensource.com>
Tue, 17 Apr 2018 09:49:57 +0000 (05:49 -0400)
There are lots of troubles with atomisp __user annotations. Fix them.

drivers/staging/media/atomisp/pci/atomisp2/atomisp_acc.c:357:49: warning: incorrect type in argument 2 (different address spaces)
drivers/staging/media/atomisp/pci/atomisp2/atomisp_acc.c:357:49:    expected void *userptr
drivers/staging/media/atomisp/pci/atomisp2/atomisp_acc.c:357:49:    got void [noderef] <asn:1>*user_ptr
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:3302:43: warning: incorrect type in argument 2 (different address spaces)
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:3302:43:    expected void const [noderef] <asn:1>*from
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:3302:43:    got void const *from
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4070:58: warning: incorrect type in argument 2 (different address spaces)
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4070:58:    expected void const *from
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4070:58:    got unsigned short [noderef] <asn:1>*<noident>
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4082:58: warning: incorrect type in argument 2 (different address spaces)
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4082:58:    expected void const *from
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:4082:58:    got unsigned short [noderef] <asn:1>*<noident>
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:6179:62: warning: incorrect type in argument 2 (different address spaces)
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:6179:62:    expected void const [noderef] <asn:1>*from
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c:6179:62:    got unsigned short [usertype] *<noident>

Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
15 files changed:
drivers/staging/media/atomisp/pci/atomisp2/atomisp_acc.c
drivers/staging/media/atomisp/pci/atomisp2/atomisp_cmd.c
drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat.h
drivers/staging/media/atomisp/pci/atomisp2/atomisp_compat_css20.c
drivers/staging/media/atomisp/pci/atomisp2/atomisp_ioctl.c
drivers/staging/media/atomisp/pci/atomisp2/css2400/hive_isp_css_include/memory_access/memory_access.h
drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_frame_public.h
drivers/staging/media/atomisp/pci/atomisp2/css2400/ia_css_memory_access.c
drivers/staging/media/atomisp/pci/atomisp2/css2400/runtime/frame/src/frame.c
drivers/staging/media/atomisp/pci/atomisp2/hmm/hmm.c
drivers/staging/media/atomisp/pci/atomisp2/hmm/hmm_bo.c
drivers/staging/media/atomisp/pci/atomisp2/hrt/hive_isp_css_mm_hrt.c
drivers/staging/media/atomisp/pci/atomisp2/hrt/hive_isp_css_mm_hrt.h
drivers/staging/media/atomisp/pci/atomisp2/include/hmm/hmm.h
drivers/staging/media/atomisp/pci/atomisp2/include/hmm/hmm_bo.h

index a6638edee36073cb429feda81c8e84e45c13805c..7ebcebd80b772eb2d30013ff0d91e3527c4053c5 100644 (file)
@@ -353,10 +353,10 @@ int atomisp_acc_map(struct atomisp_sub_device *asd, struct atomisp_acc_map *map)
                }
 
                pgnr = DIV_ROUND_UP(map->length, PAGE_SIZE);
-               cssptr = hrt_isp_css_mm_alloc_user_ptr(
-                               map->length, map->user_ptr,
-                               pgnr, HRT_USR_PTR,
-                               (map->flags & ATOMISP_MAP_FLAG_CACHED));
+               cssptr = hrt_isp_css_mm_alloc_user_ptr(map->length,
+                                                      map->user_ptr,
+                                                      pgnr, HRT_USR_PTR,
+                                                      (map->flags & ATOMISP_MAP_FLAG_CACHED));
        } else {
                /* Allocate private buffer. */
                if (map->flags & ATOMISP_MAP_FLAG_CACHED)
index fa6ea506f8b192f42747b9627a43cbf1ec07fbc0..8741656548506a7183400a29f3d0d18ba5f137dd 100644 (file)
@@ -3299,7 +3299,7 @@ static unsigned int long copy_from_compatible(void *to, const void *from,
                                              unsigned long n, bool from_user)
 {
        if (from_user)
-               return copy_from_user(to, from, n);
+               return copy_from_user(to, (void __user *)from, n);
        else
                memcpy(to, from, n);
        return 0;
@@ -4067,7 +4067,7 @@ int atomisp_cp_morph_table(struct atomisp_sub_device *asd,
 
        for (i = 0; i < CSS_MORPH_TABLE_NUM_PLANES; i++) {
                if (copy_from_compatible(morph_table->coordinates_x[i],
-                       source_morph_table->coordinates_x[i],
+                       (__force void *)source_morph_table->coordinates_x[i],
 #ifndef ISP2401
                        source_morph_table->height * source_morph_table->width *
                        sizeof(*source_morph_table->coordinates_x[i]),
@@ -4079,7 +4079,7 @@ int atomisp_cp_morph_table(struct atomisp_sub_device *asd,
                        goto error;
 
                if (copy_from_compatible(morph_table->coordinates_y[i],
-                       source_morph_table->coordinates_y[i],
+                       (__force void *)source_morph_table->coordinates_y[i],
 #ifndef ISP2401
                        source_morph_table->height * source_morph_table->width *
                        sizeof(*source_morph_table->coordinates_y[i]),
@@ -6176,7 +6176,8 @@ int atomisp_set_shading_table(struct atomisp_sub_device *asd,
                    ATOMISP_SC_TYPE_SIZE;
        for (i = 0; i < ATOMISP_NUM_SC_COLORS; i++) {
                ret = copy_from_user(shading_table->data[i],
-                                    user_shading_table->data[i], len_table);
+                                    (void __user *)user_shading_table->data[i],
+                                    len_table);
                if (ret) {
                        free_table = shading_table;
                        ret = -EFAULT;
index 6c829d0a1e4cef033a3cb56672c09a80c78a9743..aac0eccee7983a96d286f9e5cf770f17d89bf6d2 100644 (file)
@@ -353,7 +353,7 @@ void atomisp_css_frame_free(struct atomisp_css_frame *frame);
 
 int atomisp_css_frame_map(struct atomisp_css_frame **frame,
                                const struct atomisp_css_frame_info *info,
-                               const void *data, uint16_t attribute,
+                               const void __user *data, uint16_t attribute,
                                void *context);
 
 int atomisp_css_set_black_frame(struct atomisp_sub_device *asd,
index f668c68dc33adeb5131b4c6b2e6b5921dc8fada5..df88d9df202741cd814411265092531b8fd3ee55 100644 (file)
@@ -2189,7 +2189,7 @@ void atomisp_css_frame_free(struct atomisp_css_frame *frame)
 
 int atomisp_css_frame_map(struct atomisp_css_frame **frame,
                                const struct atomisp_css_frame_info *info,
-                               const void *data, uint16_t attribute,
+                               const void __user *data, uint16_t attribute,
                                void *context)
 {
        if (ia_css_frame_map(frame, info, data, attribute, context)
index 61bd550dafb96068d1752e3f9fb6c455ac608e11..6e72312438915f7ab7da645e00c76522e9acb96b 100644 (file)
@@ -1253,7 +1253,7 @@ static int atomisp_qbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
                attributes.type = HRT_USR_PTR;
 #endif
                ret = atomisp_css_frame_map(&handle, &frame_info,
-                                      (void *)buf->m.userptr,
+                                      (void __user *)buf->m.userptr,
                                       0, &attributes);
                if (ret) {
                        dev_err(isp->dev, "Failed to map user buffer\n");
index 195c4a5bceeb53dad2229a819a59e97f80be100e..d2387812f3a6ade526d3c18723bdcf408e986a38 100644 (file)
@@ -137,7 +137,7 @@ extern hrt_vaddress mmgr_alloc_attr(const size_t size, const uint16_t attribute)
  \return vaddress
  */
 extern hrt_vaddress mmgr_mmap(
-       const void *ptr,
+       const void __user *ptr,
        const size_t size,
        uint16_t attribute,
        void *context);
index 0beb7347a4f3dd9870c95a3b8225ba129ceb4a7c..89943e8bf180195fb9c7e5315d2829b8ca72ff74 100644 (file)
@@ -333,7 +333,7 @@ ia_css_frame_set_data(struct ia_css_frame *frame,
 enum ia_css_err
 ia_css_frame_map(struct ia_css_frame **frame,
                 const struct ia_css_frame_info *info,
-                const void *data,
+                const void __user *data,
                 uint16_t attribute,
                 void *context);
 
index 282075942ba6dd3f9a07df0a78b661e9029ee3a6..8222dd0a41f26367850c99b5a52ce96473a82fe8 100644 (file)
@@ -72,12 +72,12 @@ mmgr_store(const hrt_vaddress vaddr, const void *data, const size_t size)
 }
 
 hrt_vaddress
-mmgr_mmap(const void *ptr, const size_t size,
+mmgr_mmap(const void __user *ptr, const size_t size,
          uint16_t attribute, void *context)
 {
        struct hrt_userbuffer_attr *userbuffer_attr = context;
        return hrt_isp_css_mm_alloc_user_ptr(
-                       size, (void *)ptr, userbuffer_attr->pgnr,
+                       size, ptr, userbuffer_attr->pgnr,
                        userbuffer_attr->type,
                        attribute & HRT_BUF_FLAG_CACHED);
 }
index 7562beadabefa162f4953312b1eb89c7db67d0c8..fd8e6fda5db4118336cf8dfd58c52450af510fb4 100644 (file)
@@ -175,7 +175,7 @@ enum ia_css_err ia_css_frame_allocate(struct ia_css_frame **frame,
 
 enum ia_css_err ia_css_frame_map(struct ia_css_frame **frame,
        const struct ia_css_frame_info *info,
-       const void *data,
+       const void __user *data,
        uint16_t attribute,
        void *context)
 {
index 4338b8a1309fd0ba509026450a01ff6d25a00f48..15bc10b5e9b1b7fa80aadc06bc68278c81021ce6 100644 (file)
@@ -219,7 +219,7 @@ void hmm_cleanup(void)
 }
 
 ia_css_ptr hmm_alloc(size_t bytes, enum hmm_bo_type type,
-                    int from_highmem, void *userptr, bool cached)
+                    int from_highmem, const void __user *userptr, bool cached)
 {
        unsigned int pgnr;
        struct hmm_buffer_object *bo;
index 79bd540d78821f7d7d0d71944eef13b06c073f07..c888f9c809f9441f3ea566f623b4aeb15a4c972d 100644 (file)
@@ -977,7 +977,7 @@ static int get_pfnmap_pages(struct task_struct *tsk, struct mm_struct *mm,
  * Convert user space virtual address into pages list
  */
 static int alloc_user_pages(struct hmm_buffer_object *bo,
-                             void *userptr, bool cached)
+                           const void __user *userptr, bool cached)
 {
        int page_nr;
        int i;
@@ -1081,7 +1081,7 @@ static void free_user_pages(struct hmm_buffer_object *bo)
  */
 int hmm_bo_alloc_pages(struct hmm_buffer_object *bo,
                       enum hmm_bo_type type, int from_highmem,
-                      void *userptr, bool cached)
+                      const void __user *userptr, bool cached)
 {
        int ret = -EINVAL;
 
index a94958bde71808a790d062abc1a51ae42537f491..9b186517f20a63bbe4c07eaa0945be8cffb9c862 100644 (file)
 
 #define __page_align(size)     (((size) + (PAGE_SIZE-1)) & (~(PAGE_SIZE-1)))
 
-static void *my_userptr;
+static void __user *my_userptr;
 static unsigned my_num_pages;
 static enum hrt_userptr_type my_usr_type;
 
-void hrt_isp_css_mm_set_user_ptr(void *userptr,
+void hrt_isp_css_mm_set_user_ptr(void __user *userptr,
                                 unsigned int num_pages,
                                 enum hrt_userptr_type type)
 {
@@ -37,10 +37,11 @@ void hrt_isp_css_mm_set_user_ptr(void *userptr,
        my_usr_type = type;
 }
 
-static ia_css_ptr __hrt_isp_css_mm_alloc(size_t bytes, void *userptr,
-                                   unsigned int num_pages,
-                                   enum hrt_userptr_type type,
-                                   bool cached)
+static ia_css_ptr __hrt_isp_css_mm_alloc(size_t bytes,
+                                        const void __user *userptr,
+                                        unsigned int num_pages,
+                                        enum hrt_userptr_type type,
+                                        bool cached)
 {
 #ifdef CONFIG_ION
        if (type == HRT_USR_ION)
@@ -78,10 +79,11 @@ ia_css_ptr hrt_isp_css_mm_alloc(size_t bytes)
                                      my_num_pages, my_usr_type, false);
 }
 
-ia_css_ptr hrt_isp_css_mm_alloc_user_ptr(size_t bytes, void *userptr,
-                                   unsigned int num_pages,
-                                   enum hrt_userptr_type type,
-                                   bool cached)
+ia_css_ptr hrt_isp_css_mm_alloc_user_ptr(size_t bytes,
+                                        const void __user *userptr,
+                                        unsigned int num_pages,
+                                        enum hrt_userptr_type type,
+                                        bool cached)
 {
        return __hrt_isp_css_mm_alloc(bytes, userptr, num_pages,
                                      type, cached);
index 15c2dfb6794ef35f0616934d7499bea52a3c4d94..93762e71b4cab5098ab36f5075bae6ef7c100a42 100644 (file)
@@ -37,15 +37,16 @@ struct hrt_userbuffer_attr {
        unsigned int            pgnr;
 };
 
-void hrt_isp_css_mm_set_user_ptr(void *userptr,
+void hrt_isp_css_mm_set_user_ptr(void __user *userptr,
                                unsigned int num_pages, enum hrt_userptr_type);
 
 /* Allocate memory, returns a virtual address */
 ia_css_ptr hrt_isp_css_mm_alloc(size_t bytes);
-ia_css_ptr hrt_isp_css_mm_alloc_user_ptr(size_t bytes, void *userptr,
-                                   unsigned int num_pages,
-                                   enum hrt_userptr_type,
-                                   bool cached);
+ia_css_ptr hrt_isp_css_mm_alloc_user_ptr(size_t bytes,
+                                        const void __user *userptr,
+                                        unsigned int num_pages,
+                                        enum hrt_userptr_type,
+                                        bool cached);
 ia_css_ptr hrt_isp_css_mm_alloc_cached(size_t bytes);
 
 /* allocate memory and initialize with zeros,
index 1e135c7c6d9bc54b0b400efe503bf74a2dcee722..7dcc73c9f49d47bb2b88a16473ecb8497e7a9115 100644 (file)
@@ -38,7 +38,7 @@ int hmm_init(void);
 void hmm_cleanup(void);
 
 ia_css_ptr hmm_alloc(size_t bytes, enum hmm_bo_type type,
-               int from_highmem, void *userptr, bool cached);
+               int from_highmem, const void __user *userptr, bool cached);
 void hmm_free(ia_css_ptr ptr);
 int hmm_load(ia_css_ptr virt, void *data, unsigned int bytes);
 int hmm_store(ia_css_ptr virt, const void *data, unsigned int bytes);
index bd44ebbc427c073fc395e88d38a705c0b4351918..508d6fd68f93b7853ad8d905c3583940fe2b8f85 100644 (file)
@@ -244,7 +244,7 @@ int hmm_bo_allocated(struct hmm_buffer_object *bo);
  */
 int hmm_bo_alloc_pages(struct hmm_buffer_object *bo,
                enum hmm_bo_type type, int from_highmem,
-               void *userptr, bool cached);
+               const void __user *userptr, bool cached);
 void hmm_bo_free_pages(struct hmm_buffer_object *bo);
 int hmm_bo_page_allocated(struct hmm_buffer_object *bo);