Commit 90d53d19 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

media: atomisp: fix __user annotations

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: default avatarMauro Carvalho Chehab <mchehab@s-opensource.com>
parent 3204043f
...@@ -353,10 +353,10 @@ int atomisp_acc_map(struct atomisp_sub_device *asd, struct atomisp_acc_map *map) ...@@ -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); pgnr = DIV_ROUND_UP(map->length, PAGE_SIZE);
cssptr = hrt_isp_css_mm_alloc_user_ptr( cssptr = hrt_isp_css_mm_alloc_user_ptr(map->length,
map->length, map->user_ptr, map->user_ptr,
pgnr, HRT_USR_PTR, pgnr, HRT_USR_PTR,
(map->flags & ATOMISP_MAP_FLAG_CACHED)); (map->flags & ATOMISP_MAP_FLAG_CACHED));
} else { } else {
/* Allocate private buffer. */ /* Allocate private buffer. */
if (map->flags & ATOMISP_MAP_FLAG_CACHED) if (map->flags & ATOMISP_MAP_FLAG_CACHED)
......
...@@ -3299,7 +3299,7 @@ static unsigned int long copy_from_compatible(void *to, const void *from, ...@@ -3299,7 +3299,7 @@ static unsigned int long copy_from_compatible(void *to, const void *from,
unsigned long n, bool from_user) unsigned long n, bool from_user)
{ {
if (from_user) if (from_user)
return copy_from_user(to, from, n); return copy_from_user(to, (void __user *)from, n);
else else
memcpy(to, from, n); memcpy(to, from, n);
return 0; return 0;
...@@ -4067,7 +4067,7 @@ int atomisp_cp_morph_table(struct atomisp_sub_device *asd, ...@@ -4067,7 +4067,7 @@ int atomisp_cp_morph_table(struct atomisp_sub_device *asd,
for (i = 0; i < CSS_MORPH_TABLE_NUM_PLANES; i++) { for (i = 0; i < CSS_MORPH_TABLE_NUM_PLANES; i++) {
if (copy_from_compatible(morph_table->coordinates_x[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 #ifndef ISP2401
source_morph_table->height * source_morph_table->width * source_morph_table->height * source_morph_table->width *
sizeof(*source_morph_table->coordinates_x[i]), sizeof(*source_morph_table->coordinates_x[i]),
...@@ -4079,7 +4079,7 @@ int atomisp_cp_morph_table(struct atomisp_sub_device *asd, ...@@ -4079,7 +4079,7 @@ int atomisp_cp_morph_table(struct atomisp_sub_device *asd,
goto error; goto error;
if (copy_from_compatible(morph_table->coordinates_y[i], 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 #ifndef ISP2401
source_morph_table->height * source_morph_table->width * source_morph_table->height * source_morph_table->width *
sizeof(*source_morph_table->coordinates_y[i]), sizeof(*source_morph_table->coordinates_y[i]),
...@@ -6176,7 +6176,8 @@ int atomisp_set_shading_table(struct atomisp_sub_device *asd, ...@@ -6176,7 +6176,8 @@ int atomisp_set_shading_table(struct atomisp_sub_device *asd,
ATOMISP_SC_TYPE_SIZE; ATOMISP_SC_TYPE_SIZE;
for (i = 0; i < ATOMISP_NUM_SC_COLORS; i++) { for (i = 0; i < ATOMISP_NUM_SC_COLORS; i++) {
ret = copy_from_user(shading_table->data[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) { if (ret) {
free_table = shading_table; free_table = shading_table;
ret = -EFAULT; ret = -EFAULT;
......
...@@ -353,7 +353,7 @@ void atomisp_css_frame_free(struct atomisp_css_frame *frame); ...@@ -353,7 +353,7 @@ void atomisp_css_frame_free(struct atomisp_css_frame *frame);
int atomisp_css_frame_map(struct atomisp_css_frame **frame, int atomisp_css_frame_map(struct atomisp_css_frame **frame,
const struct atomisp_css_frame_info *info, const struct atomisp_css_frame_info *info,
const void *data, uint16_t attribute, const void __user *data, uint16_t attribute,
void *context); void *context);
int atomisp_css_set_black_frame(struct atomisp_sub_device *asd, int atomisp_css_set_black_frame(struct atomisp_sub_device *asd,
......
...@@ -2189,7 +2189,7 @@ void atomisp_css_frame_free(struct atomisp_css_frame *frame) ...@@ -2189,7 +2189,7 @@ void atomisp_css_frame_free(struct atomisp_css_frame *frame)
int atomisp_css_frame_map(struct atomisp_css_frame **frame, int atomisp_css_frame_map(struct atomisp_css_frame **frame,
const struct atomisp_css_frame_info *info, const struct atomisp_css_frame_info *info,
const void *data, uint16_t attribute, const void __user *data, uint16_t attribute,
void *context) void *context)
{ {
if (ia_css_frame_map(frame, info, data, attribute, context) if (ia_css_frame_map(frame, info, data, attribute, context)
......
...@@ -1253,7 +1253,7 @@ static int atomisp_qbuf(struct file *file, void *fh, struct v4l2_buffer *buf) ...@@ -1253,7 +1253,7 @@ static int atomisp_qbuf(struct file *file, void *fh, struct v4l2_buffer *buf)
attributes.type = HRT_USR_PTR; attributes.type = HRT_USR_PTR;
#endif #endif
ret = atomisp_css_frame_map(&handle, &frame_info, ret = atomisp_css_frame_map(&handle, &frame_info,
(void *)buf->m.userptr, (void __user *)buf->m.userptr,
0, &attributes); 0, &attributes);
if (ret) { if (ret) {
dev_err(isp->dev, "Failed to map user buffer\n"); dev_err(isp->dev, "Failed to map user buffer\n");
......
...@@ -137,7 +137,7 @@ extern hrt_vaddress mmgr_alloc_attr(const size_t size, const uint16_t attribute) ...@@ -137,7 +137,7 @@ extern hrt_vaddress mmgr_alloc_attr(const size_t size, const uint16_t attribute)
\return vaddress \return vaddress
*/ */
extern hrt_vaddress mmgr_mmap( extern hrt_vaddress mmgr_mmap(
const void *ptr, const void __user *ptr,
const size_t size, const size_t size,
uint16_t attribute, uint16_t attribute,
void *context); void *context);
......
...@@ -333,7 +333,7 @@ ia_css_frame_set_data(struct ia_css_frame *frame, ...@@ -333,7 +333,7 @@ ia_css_frame_set_data(struct ia_css_frame *frame,
enum ia_css_err enum ia_css_err
ia_css_frame_map(struct ia_css_frame **frame, ia_css_frame_map(struct ia_css_frame **frame,
const struct ia_css_frame_info *info, const struct ia_css_frame_info *info,
const void *data, const void __user *data,
uint16_t attribute, uint16_t attribute,
void *context); void *context);
......
...@@ -72,12 +72,12 @@ mmgr_store(const hrt_vaddress vaddr, const void *data, const size_t size) ...@@ -72,12 +72,12 @@ mmgr_store(const hrt_vaddress vaddr, const void *data, const size_t size)
} }
hrt_vaddress 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) uint16_t attribute, void *context)
{ {
struct hrt_userbuffer_attr *userbuffer_attr = context; struct hrt_userbuffer_attr *userbuffer_attr = context;
return hrt_isp_css_mm_alloc_user_ptr( return hrt_isp_css_mm_alloc_user_ptr(
size, (void *)ptr, userbuffer_attr->pgnr, size, ptr, userbuffer_attr->pgnr,
userbuffer_attr->type, userbuffer_attr->type,
attribute & HRT_BUF_FLAG_CACHED); attribute & HRT_BUF_FLAG_CACHED);
} }
...@@ -175,7 +175,7 @@ enum ia_css_err ia_css_frame_allocate(struct ia_css_frame **frame, ...@@ -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, enum ia_css_err ia_css_frame_map(struct ia_css_frame **frame,
const struct ia_css_frame_info *info, const struct ia_css_frame_info *info,
const void *data, const void __user *data,
uint16_t attribute, uint16_t attribute,
void *context) void *context)
{ {
......
...@@ -219,7 +219,7 @@ void hmm_cleanup(void) ...@@ -219,7 +219,7 @@ void hmm_cleanup(void)
} }
ia_css_ptr hmm_alloc(size_t bytes, enum hmm_bo_type type, 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; unsigned int pgnr;
struct hmm_buffer_object *bo; struct hmm_buffer_object *bo;
......
...@@ -977,7 +977,7 @@ static int get_pfnmap_pages(struct task_struct *tsk, struct mm_struct *mm, ...@@ -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 * Convert user space virtual address into pages list
*/ */
static int alloc_user_pages(struct hmm_buffer_object *bo, static int alloc_user_pages(struct hmm_buffer_object *bo,
void *userptr, bool cached) const void __user *userptr, bool cached)
{ {
int page_nr; int page_nr;
int i; int i;
...@@ -1081,7 +1081,7 @@ static void free_user_pages(struct hmm_buffer_object *bo) ...@@ -1081,7 +1081,7 @@ static void free_user_pages(struct hmm_buffer_object *bo)
*/ */
int hmm_bo_alloc_pages(struct hmm_buffer_object *bo, int hmm_bo_alloc_pages(struct hmm_buffer_object *bo,
enum hmm_bo_type type, int from_highmem, enum hmm_bo_type type, int from_highmem,
void *userptr, bool cached) const void __user *userptr, bool cached)
{ {
int ret = -EINVAL; int ret = -EINVAL;
......
...@@ -24,11 +24,11 @@ ...@@ -24,11 +24,11 @@
#define __page_align(size) (((size) + (PAGE_SIZE-1)) & (~(PAGE_SIZE-1))) #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 unsigned my_num_pages;
static enum hrt_userptr_type my_usr_type; 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, unsigned int num_pages,
enum hrt_userptr_type type) enum hrt_userptr_type type)
{ {
...@@ -37,10 +37,11 @@ void hrt_isp_css_mm_set_user_ptr(void *userptr, ...@@ -37,10 +37,11 @@ void hrt_isp_css_mm_set_user_ptr(void *userptr,
my_usr_type = type; my_usr_type = type;
} }
static ia_css_ptr __hrt_isp_css_mm_alloc(size_t bytes, void *userptr, static ia_css_ptr __hrt_isp_css_mm_alloc(size_t bytes,
unsigned int num_pages, const void __user *userptr,
enum hrt_userptr_type type, unsigned int num_pages,
bool cached) enum hrt_userptr_type type,
bool cached)
{ {
#ifdef CONFIG_ION #ifdef CONFIG_ION
if (type == HRT_USR_ION) if (type == HRT_USR_ION)
...@@ -78,10 +79,11 @@ ia_css_ptr hrt_isp_css_mm_alloc(size_t bytes) ...@@ -78,10 +79,11 @@ ia_css_ptr hrt_isp_css_mm_alloc(size_t bytes)
my_num_pages, my_usr_type, false); my_num_pages, my_usr_type, false);
} }
ia_css_ptr hrt_isp_css_mm_alloc_user_ptr(size_t bytes, void *userptr, ia_css_ptr hrt_isp_css_mm_alloc_user_ptr(size_t bytes,
unsigned int num_pages, const void __user *userptr,
enum hrt_userptr_type type, unsigned int num_pages,
bool cached) enum hrt_userptr_type type,
bool cached)
{ {
return __hrt_isp_css_mm_alloc(bytes, userptr, num_pages, return __hrt_isp_css_mm_alloc(bytes, userptr, num_pages,
type, cached); type, cached);
......
...@@ -37,15 +37,16 @@ struct hrt_userbuffer_attr { ...@@ -37,15 +37,16 @@ struct hrt_userbuffer_attr {
unsigned int pgnr; 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); unsigned int num_pages, enum hrt_userptr_type);
/* Allocate memory, returns a virtual address */ /* 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(size_t bytes);
ia_css_ptr hrt_isp_css_mm_alloc_user_ptr(size_t bytes, void *userptr, ia_css_ptr hrt_isp_css_mm_alloc_user_ptr(size_t bytes,
unsigned int num_pages, const void __user *userptr,
enum hrt_userptr_type, unsigned int num_pages,
bool cached); enum hrt_userptr_type,
bool cached);
ia_css_ptr hrt_isp_css_mm_alloc_cached(size_t bytes); ia_css_ptr hrt_isp_css_mm_alloc_cached(size_t bytes);
/* allocate memory and initialize with zeros, /* allocate memory and initialize with zeros,
......
...@@ -38,7 +38,7 @@ int hmm_init(void); ...@@ -38,7 +38,7 @@ int hmm_init(void);
void hmm_cleanup(void); void hmm_cleanup(void);
ia_css_ptr hmm_alloc(size_t bytes, enum hmm_bo_type type, 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); void hmm_free(ia_css_ptr ptr);
int hmm_load(ia_css_ptr virt, void *data, unsigned int bytes); 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); int hmm_store(ia_css_ptr virt, const void *data, unsigned int bytes);
......
...@@ -244,7 +244,7 @@ int hmm_bo_allocated(struct hmm_buffer_object *bo); ...@@ -244,7 +244,7 @@ int hmm_bo_allocated(struct hmm_buffer_object *bo);
*/ */
int hmm_bo_alloc_pages(struct hmm_buffer_object *bo, int hmm_bo_alloc_pages(struct hmm_buffer_object *bo,
enum hmm_bo_type type, int from_highmem, 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); void hmm_bo_free_pages(struct hmm_buffer_object *bo);
int hmm_bo_page_allocated(struct hmm_buffer_object *bo); int hmm_bo_page_allocated(struct hmm_buffer_object *bo);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment