Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
4e46f5c9
Commit
4e46f5c9
authored
May 28, 2004
by
Alexander Viro
Committed by
Linus Torvalds
May 28, 2004
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[PATCH] sparse: trivial part of drivers/block __user annotation
parent
e7f962f1
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
29 additions
and
29 deletions
+29
-29
drivers/block/floppy.c
drivers/block/floppy.c
+10
-10
drivers/block/ioctl.c
drivers/block/ioctl.c
+9
-9
drivers/block/loop.c
drivers/block/loop.c
+8
-8
drivers/block/paride/pd.c
drivers/block/paride/pd.c
+1
-1
include/linux/blkpg.h
include/linux/blkpg.h
+1
-1
No files found.
drivers/block/floppy.c
View file @
4e46f5c9
...
@@ -3079,19 +3079,19 @@ static int user_reset_fdc(int drive, int arg, int interruptible)
...
@@ -3079,19 +3079,19 @@ static int user_reset_fdc(int drive, int arg, int interruptible)
* Misc Ioctl's and support
* Misc Ioctl's and support
* ========================
* ========================
*/
*/
static
inline
int
fd_copyout
(
void
*
param
,
const
void
*
address
,
static
inline
int
fd_copyout
(
void
__user
*
param
,
const
void
*
address
,
unsigned
long
size
)
unsigned
long
size
)
{
{
return
copy_to_user
(
param
,
address
,
size
)
?
-
EFAULT
:
0
;
return
copy_to_user
(
param
,
address
,
size
)
?
-
EFAULT
:
0
;
}
}
static
inline
int
fd_copyin
(
void
*
param
,
void
*
address
,
unsigned
long
size
)
static
inline
int
fd_copyin
(
void
__user
*
param
,
void
*
address
,
unsigned
long
size
)
{
{
return
copy_from_user
(
address
,
param
,
size
)
?
-
EFAULT
:
0
;
return
copy_from_user
(
address
,
param
,
size
)
?
-
EFAULT
:
0
;
}
}
#define _COPYOUT(x) (copy_to_user((void *)param, &(x), sizeof(x)) ? -EFAULT : 0)
#define _COPYOUT(x) (copy_to_user((void
__user
*)param, &(x), sizeof(x)) ? -EFAULT : 0)
#define _COPYIN(x) (copy_from_user(&(x), (void *)param, sizeof(x)) ? -EFAULT : 0)
#define _COPYIN(x) (copy_from_user(&(x), (void
__user
*)param, sizeof(x)) ? -EFAULT : 0)
#define COPYOUT(x) ECALL(_COPYOUT(x))
#define COPYOUT(x) ECALL(_COPYOUT(x))
#define COPYIN(x) ECALL(_COPYIN(x))
#define COPYIN(x) ECALL(_COPYIN(x))
...
@@ -3166,7 +3166,7 @@ static struct cont_t raw_cmd_cont = {
...
@@ -3166,7 +3166,7 @@ static struct cont_t raw_cmd_cont = {
.
done
=
raw_cmd_done
.
done
=
raw_cmd_done
};
};
static
inline
int
raw_cmd_copyout
(
int
cmd
,
char
*
param
,
static
inline
int
raw_cmd_copyout
(
int
cmd
,
char
__user
*
param
,
struct
floppy_raw_cmd
*
ptr
)
struct
floppy_raw_cmd
*
ptr
)
{
{
int
ret
;
int
ret
;
...
@@ -3204,7 +3204,7 @@ static void raw_cmd_free(struct floppy_raw_cmd **ptr)
...
@@ -3204,7 +3204,7 @@ static void raw_cmd_free(struct floppy_raw_cmd **ptr)
}
}
}
}
static
inline
int
raw_cmd_copyin
(
int
cmd
,
char
*
param
,
static
inline
int
raw_cmd_copyin
(
int
cmd
,
char
__user
*
param
,
struct
floppy_raw_cmd
**
rcmd
)
struct
floppy_raw_cmd
**
rcmd
)
{
{
struct
floppy_raw_cmd
*
ptr
;
struct
floppy_raw_cmd
*
ptr
;
...
@@ -3258,7 +3258,7 @@ static inline int raw_cmd_copyin(int cmd, char *param,
...
@@ -3258,7 +3258,7 @@ static inline int raw_cmd_copyin(int cmd, char *param,
}
}
}
}
static
int
raw_cmd_ioctl
(
int
cmd
,
void
*
param
)
static
int
raw_cmd_ioctl
(
int
cmd
,
void
__user
*
param
)
{
{
int
drive
,
ret
,
ret2
;
int
drive
,
ret
,
ret2
;
struct
floppy_raw_cmd
*
my_raw_cmd
;
struct
floppy_raw_cmd
*
my_raw_cmd
;
...
@@ -3508,7 +3508,7 @@ static int fd_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
...
@@ -3508,7 +3508,7 @@ static int fd_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
/* copyin */
/* copyin */
CLEARSTRUCT
(
&
inparam
);
CLEARSTRUCT
(
&
inparam
);
if
(
_IOC_DIR
(
cmd
)
&
_IOC_WRITE
)
if
(
_IOC_DIR
(
cmd
)
&
_IOC_WRITE
)
ECALL
(
fd_copyin
((
void
*
)
param
,
&
inparam
,
size
))
ECALL
(
fd_copyin
((
void
__user
*
)
param
,
&
inparam
,
size
))
switch
(
cmd
)
{
switch
(
cmd
)
{
case
FDEJECT
:
case
FDEJECT
:
...
@@ -3604,7 +3604,7 @@ static int fd_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
...
@@ -3604,7 +3604,7 @@ static int fd_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
return
-
EINVAL
;
return
-
EINVAL
;
LOCK_FDC
(
drive
,
1
);
LOCK_FDC
(
drive
,
1
);
set_floppy
(
drive
);
set_floppy
(
drive
);
CALL
(
i
=
raw_cmd_ioctl
(
cmd
,
(
void
*
)
param
));
CALL
(
i
=
raw_cmd_ioctl
(
cmd
,
(
void
__user
*
)
param
));
process_fd_request
();
process_fd_request
();
return
i
;
return
i
;
...
@@ -3619,7 +3619,7 @@ static int fd_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
...
@@ -3619,7 +3619,7 @@ static int fd_ioctl(struct inode *inode, struct file *filp, unsigned int cmd,
}
}
if
(
_IOC_DIR
(
cmd
)
&
_IOC_READ
)
if
(
_IOC_DIR
(
cmd
)
&
_IOC_READ
)
return
fd_copyout
((
void
*
)
param
,
outparam
,
size
);
return
fd_copyout
((
void
__user
*
)
param
,
outparam
,
size
);
else
else
return
0
;
return
0
;
#undef OUT
#undef OUT
...
...
drivers/block/ioctl.c
View file @
4e46f5c9
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
#include <linux/buffer_head.h>
#include <linux/buffer_head.h>
#include <asm/uaccess.h>
#include <asm/uaccess.h>
static
int
blkpg_ioctl
(
struct
block_device
*
bdev
,
struct
blkpg_ioctl_arg
*
arg
)
static
int
blkpg_ioctl
(
struct
block_device
*
bdev
,
struct
blkpg_ioctl_arg
__user
*
arg
)
{
{
struct
block_device
*
bdevp
;
struct
block_device
*
bdevp
;
struct
gendisk
*
disk
;
struct
gendisk
*
disk
;
...
@@ -109,27 +109,27 @@ static int blkdev_reread_part(struct block_device *bdev)
...
@@ -109,27 +109,27 @@ static int blkdev_reread_part(struct block_device *bdev)
static
int
put_ushort
(
unsigned
long
arg
,
unsigned
short
val
)
static
int
put_ushort
(
unsigned
long
arg
,
unsigned
short
val
)
{
{
return
put_user
(
val
,
(
unsigned
short
*
)
arg
);
return
put_user
(
val
,
(
unsigned
short
__user
*
)
arg
);
}
}
static
int
put_int
(
unsigned
long
arg
,
int
val
)
static
int
put_int
(
unsigned
long
arg
,
int
val
)
{
{
return
put_user
(
val
,
(
int
*
)
arg
);
return
put_user
(
val
,
(
int
__user
*
)
arg
);
}
}
static
int
put_long
(
unsigned
long
arg
,
long
val
)
static
int
put_long
(
unsigned
long
arg
,
long
val
)
{
{
return
put_user
(
val
,
(
long
*
)
arg
);
return
put_user
(
val
,
(
long
__user
*
)
arg
);
}
}
static
int
put_ulong
(
unsigned
long
arg
,
unsigned
long
val
)
static
int
put_ulong
(
unsigned
long
arg
,
unsigned
long
val
)
{
{
return
put_user
(
val
,
(
unsigned
long
*
)
arg
);
return
put_user
(
val
,
(
unsigned
long
__user
*
)
arg
);
}
}
static
int
put_u64
(
unsigned
long
arg
,
u64
val
)
static
int
put_u64
(
unsigned
long
arg
,
u64
val
)
{
{
return
put_user
(
val
,
(
u64
*
)
arg
);
return
put_user
(
val
,
(
u64
__user
*
)
arg
);
}
}
int
blkdev_ioctl
(
struct
inode
*
inode
,
struct
file
*
file
,
unsigned
cmd
,
int
blkdev_ioctl
(
struct
inode
*
inode
,
struct
file
*
file
,
unsigned
cmd
,
...
@@ -172,7 +172,7 @@ int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd,
...
@@ -172,7 +172,7 @@ int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd,
return
-
EACCES
;
return
-
EACCES
;
if
(
!
arg
)
if
(
!
arg
)
return
-
EINVAL
;
return
-
EINVAL
;
if
(
get_user
(
n
,
(
int
*
)
arg
))
if
(
get_user
(
n
,
(
int
__user
*
)
arg
))
return
-
EFAULT
;
return
-
EFAULT
;
if
(
bd_claim
(
bdev
,
file
)
<
0
)
if
(
bd_claim
(
bdev
,
file
)
<
0
)
return
-
EBUSY
;
return
-
EBUSY
;
...
@@ -180,7 +180,7 @@ int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd,
...
@@ -180,7 +180,7 @@ int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd,
bd_release
(
bdev
);
bd_release
(
bdev
);
return
ret
;
return
ret
;
case
BLKPG
:
case
BLKPG
:
return
blkpg_ioctl
(
bdev
,
(
struct
blkpg_ioctl_arg
*
)
arg
);
return
blkpg_ioctl
(
bdev
,
(
struct
blkpg_ioctl_arg
__user
*
)
arg
);
case
BLKRRPART
:
case
BLKRRPART
:
return
blkdev_reread_part
(
bdev
);
return
blkdev_reread_part
(
bdev
);
case
BLKGETSIZE
:
case
BLKGETSIZE
:
...
@@ -209,7 +209,7 @@ int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd,
...
@@ -209,7 +209,7 @@ int blkdev_ioctl(struct inode *inode, struct file *file, unsigned cmd,
}
}
if
(
!
capable
(
CAP_SYS_ADMIN
))
if
(
!
capable
(
CAP_SYS_ADMIN
))
return
-
EACCES
;
return
-
EACCES
;
if
(
get_user
(
n
,
(
int
*
)(
arg
)))
if
(
get_user
(
n
,
(
int
__user
*
)(
arg
)))
return
-
EFAULT
;
return
-
EFAULT
;
set_device_ro
(
bdev
,
n
);
set_device_ro
(
bdev
,
n
);
return
0
;
return
0
;
...
...
drivers/block/loop.c
View file @
4e46f5c9
...
@@ -949,7 +949,7 @@ loop_info64_to_old(const struct loop_info64 *info64, struct loop_info *info)
...
@@ -949,7 +949,7 @@ loop_info64_to_old(const struct loop_info64 *info64, struct loop_info *info)
}
}
static
int
static
int
loop_set_status_old
(
struct
loop_device
*
lo
,
const
struct
loop_info
*
arg
)
loop_set_status_old
(
struct
loop_device
*
lo
,
const
struct
loop_info
__user
*
arg
)
{
{
struct
loop_info
info
;
struct
loop_info
info
;
struct
loop_info64
info64
;
struct
loop_info64
info64
;
...
@@ -961,7 +961,7 @@ loop_set_status_old(struct loop_device *lo, const struct loop_info *arg)
...
@@ -961,7 +961,7 @@ loop_set_status_old(struct loop_device *lo, const struct loop_info *arg)
}
}
static
int
static
int
loop_set_status64
(
struct
loop_device
*
lo
,
const
struct
loop_info64
*
arg
)
loop_set_status64
(
struct
loop_device
*
lo
,
const
struct
loop_info64
__user
*
arg
)
{
{
struct
loop_info64
info64
;
struct
loop_info64
info64
;
...
@@ -971,7 +971,7 @@ loop_set_status64(struct loop_device *lo, const struct loop_info64 *arg)
...
@@ -971,7 +971,7 @@ loop_set_status64(struct loop_device *lo, const struct loop_info64 *arg)
}
}
static
int
static
int
loop_get_status_old
(
struct
loop_device
*
lo
,
struct
loop_info
*
arg
)
{
loop_get_status_old
(
struct
loop_device
*
lo
,
struct
loop_info
__user
*
arg
)
{
struct
loop_info
info
;
struct
loop_info
info
;
struct
loop_info64
info64
;
struct
loop_info64
info64
;
int
err
=
0
;
int
err
=
0
;
...
@@ -989,7 +989,7 @@ loop_get_status_old(struct loop_device *lo, struct loop_info *arg) {
...
@@ -989,7 +989,7 @@ loop_get_status_old(struct loop_device *lo, struct loop_info *arg) {
}
}
static
int
static
int
loop_get_status64
(
struct
loop_device
*
lo
,
struct
loop_info64
*
arg
)
{
loop_get_status64
(
struct
loop_device
*
lo
,
struct
loop_info64
__user
*
arg
)
{
struct
loop_info64
info64
;
struct
loop_info64
info64
;
int
err
=
0
;
int
err
=
0
;
...
@@ -1021,16 +1021,16 @@ static int lo_ioctl(struct inode * inode, struct file * file,
...
@@ -1021,16 +1021,16 @@ static int lo_ioctl(struct inode * inode, struct file * file,
err
=
loop_clr_fd
(
lo
,
inode
->
i_bdev
);
err
=
loop_clr_fd
(
lo
,
inode
->
i_bdev
);
break
;
break
;
case
LOOP_SET_STATUS
:
case
LOOP_SET_STATUS
:
err
=
loop_set_status_old
(
lo
,
(
struct
loop_info
*
)
arg
);
err
=
loop_set_status_old
(
lo
,
(
struct
loop_info
__user
*
)
arg
);
break
;
break
;
case
LOOP_GET_STATUS
:
case
LOOP_GET_STATUS
:
err
=
loop_get_status_old
(
lo
,
(
struct
loop_info
*
)
arg
);
err
=
loop_get_status_old
(
lo
,
(
struct
loop_info
__user
*
)
arg
);
break
;
break
;
case
LOOP_SET_STATUS64
:
case
LOOP_SET_STATUS64
:
err
=
loop_set_status64
(
lo
,
(
struct
loop_info64
*
)
arg
);
err
=
loop_set_status64
(
lo
,
(
struct
loop_info64
__user
*
)
arg
);
break
;
break
;
case
LOOP_GET_STATUS64
:
case
LOOP_GET_STATUS64
:
err
=
loop_get_status64
(
lo
,
(
struct
loop_info64
*
)
arg
);
err
=
loop_get_status64
(
lo
,
(
struct
loop_info64
__user
*
)
arg
);
break
;
break
;
default:
default:
err
=
lo
->
ioctl
?
lo
->
ioctl
(
lo
,
cmd
,
arg
)
:
-
EINVAL
;
err
=
lo
->
ioctl
?
lo
->
ioctl
(
lo
,
cmd
,
arg
)
:
-
EINVAL
;
...
...
drivers/block/paride/pd.c
View file @
4e46f5c9
...
@@ -771,7 +771,7 @@ static int pd_ioctl(struct inode *inode, struct file *file,
...
@@ -771,7 +771,7 @@ static int pd_ioctl(struct inode *inode, struct file *file,
unsigned
int
cmd
,
unsigned
long
arg
)
unsigned
int
cmd
,
unsigned
long
arg
)
{
{
struct
pd_unit
*
disk
=
inode
->
i_bdev
->
bd_disk
->
private_data
;
struct
pd_unit
*
disk
=
inode
->
i_bdev
->
bd_disk
->
private_data
;
struct
hd_geometry
*
geo
=
(
struct
hd_geometry
*
)
arg
;
struct
hd_geometry
__user
*
geo
=
(
struct
hd_geometry
__user
*
)
arg
;
struct
hd_geometry
g
;
struct
hd_geometry
g
;
switch
(
cmd
)
{
switch
(
cmd
)
{
...
...
include/linux/blkpg.h
View file @
4e46f5c9
...
@@ -33,7 +33,7 @@ struct blkpg_ioctl_arg {
...
@@ -33,7 +33,7 @@ struct blkpg_ioctl_arg {
int
op
;
int
op
;
int
flags
;
int
flags
;
int
datalen
;
int
datalen
;
void
*
data
;
void
__user
*
data
;
};
};
/* The subfunctions (for the op field) */
/* The subfunctions (for the op field) */
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment