Commit cdce088e authored by Linus Torvalds's avatar Linus Torvalds

Merge http://lia64.bkbits.net/to-linus-2.5

into home.osdl.org:/home/torvalds/v2.5/linux
parents 412a1123 a096638b
......@@ -251,7 +251,7 @@ void machine_restart(char * __unused)
* other OSs see a clean IRQ state.
*/
smp_send_stop();
#elif CONFIG_X86_LOCAL_APIC
#elif defined(CONFIG_X86_LOCAL_APIC)
if (cpu_has_apic) {
local_irq_disable();
disable_local_APIC();
......
......@@ -288,8 +288,10 @@ static int ep_getfd(int *efd, struct inode **einode, struct file **efile);
static int ep_alloc_pages(char **pages, int numpages);
static int ep_free_pages(char **pages, int numpages);
static int ep_file_init(struct file *file, unsigned int hashbits);
static unsigned int ep_hash_index(struct eventpoll *ep, struct file *file, int fd);
static struct list_head *ep_hash_entry(struct eventpoll *ep, unsigned int index);
static unsigned int ep_hash_index(struct eventpoll *ep, struct file *file,
int fd);
static struct list_head *ep_hash_entry(struct eventpoll *ep,
unsigned int index);
static int ep_init(struct eventpoll *ep, unsigned int hashbits);
static void ep_free(struct eventpoll *ep);
static struct epitem *ep_find(struct eventpoll *ep, struct file *file, int fd);
......@@ -299,7 +301,8 @@ static void ep_ptable_queue_proc(struct file *file, wait_queue_head_t *whead,
poll_table *pt);
static int ep_insert(struct eventpoll *ep, struct epoll_event *event,
struct file *tfile, int fd);
static int ep_modify(struct eventpoll *ep, struct epitem *epi, struct epoll_event *event);
static int ep_modify(struct eventpoll *ep, struct epitem *epi,
struct epoll_event *event);
static void ep_unregister_pollwait(struct eventpoll *ep, struct epitem *epi);
static int ep_unlink(struct eventpoll *ep, struct epitem *epi);
static int ep_remove(struct eventpoll *ep, struct epitem *epi);
......@@ -309,11 +312,12 @@ static unsigned int ep_eventpoll_poll(struct file *file, poll_table *wait);
static int ep_collect_ready_items(struct eventpoll *ep,
struct list_head *txlist, int maxevents);
static int ep_send_events(struct eventpoll *ep, struct list_head *txlist,
struct epoll_event *events);
struct epoll_event __user *events);
static void ep_reinject_items(struct eventpoll *ep, struct list_head *txlist);
static int ep_events_transfer(struct eventpoll *ep,
struct epoll_event *events, int maxevents);
static int ep_poll(struct eventpoll *ep, struct epoll_event *events,
struct epoll_event __user *events,
int maxevents);
static int ep_poll(struct eventpoll *ep, struct epoll_event __user *events,
int maxevents, long timeout);
static int eventpollfs_delete_dentry(struct dentry *dentry);
static struct inode *ep_eventpoll_inode(void);
......@@ -532,11 +536,13 @@ asmlinkage long sys_epoll_create(int size)
/*
* The following function implement the controller interface for the eventpoll
* file that enable the insertion/removal/change of file descriptors inside
* the interest set. It rapresents the kernel part of the user space epoll_ctl(2).
* The following function implements the controller interface for
* the eventpoll file that enables the insertion/removal/change of
* file descriptors inside the interest set. It represents
* the kernel part of the user space epoll_ctl(2).
*/
asmlinkage long sys_epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
asmlinkage long
sys_epoll_ctl(int epfd, int op, int fd, struct epoll_event __user *event)
{
int error;
struct file *file, *tfile;
......@@ -637,8 +643,8 @@ asmlinkage long sys_epoll_ctl(int epfd, int op, int fd, struct epoll_event *even
* Implement the event wait interface for the eventpoll file. It is the kernel
* part of the user space epoll_wait(2).
*/
asmlinkage long sys_epoll_wait(int epfd, struct epoll_event *events, int maxevents,
int timeout)
asmlinkage long sys_epoll_wait(int epfd, struct epoll_event __user *events,
int maxevents, int timeout)
{
int error;
struct file *file;
......@@ -662,7 +668,7 @@ asmlinkage long sys_epoll_wait(int epfd, struct epoll_event *events, int maxeven
goto eexit_1;
/*
* We have to check that the file structure underneath the file descriptor
* We have to check that the file structure underneath the fd
* the user passed to us _is_ an eventpoll file.
*/
error = -EINVAL;
......@@ -1409,7 +1415,7 @@ static int ep_collect_ready_items(struct eventpoll *ep, struct list_head *txlist
* because of the way poll() is traditionally implemented in Linux.
*/
static int ep_send_events(struct eventpoll *ep, struct list_head *txlist,
struct epoll_event *events)
struct epoll_event __user *events)
{
int eventcnt = 0, eventbuf = 0;
unsigned int revents;
......@@ -1521,7 +1527,8 @@ static void ep_reinject_items(struct eventpoll *ep, struct list_head *txlist)
/*
* Perform the transfer of events to user space.
*/
static int ep_events_transfer(struct eventpoll *ep, struct epoll_event *events, int maxevents)
static int ep_events_transfer(struct eventpoll *ep,
struct epoll_event __user *events, int maxevents)
{
int eventcnt = 0;
struct list_head txlist;
......@@ -1549,8 +1556,8 @@ static int ep_events_transfer(struct eventpoll *ep, struct epoll_event *events,
}
static int ep_poll(struct eventpoll *ep, struct epoll_event *events, int maxevents,
long timeout)
static int ep_poll(struct eventpoll *ep, struct epoll_event __user *events,
int maxevents, long timeout)
{
int res, eavail;
unsigned long flags;
......
......@@ -20,7 +20,8 @@
#include "ext2.h"
#include "xattr.h"
static int ext2_readlink(struct dentry *dentry, char *buffer, int buflen)
static int
ext2_readlink(struct dentry *dentry, char __user *buffer, int buflen)
{
struct ext2_inode_info *ei = EXT2_I(dentry->d_inode);
return vfs_readlink(dentry, buffer, buflen, (char *)ei->i_data);
......
......@@ -11,8 +11,8 @@
#include <linux/smp_lock.h>
#include <linux/buffer_head.h>
static ssize_t fat_file_write(struct file *filp, const char *buf, size_t count,
loff_t *ppos);
static ssize_t fat_file_write(struct file *filp, const char __user *buf,
size_t count, loff_t *ppos);
struct file_operations fat_file_operations = {
.llseek = generic_file_llseek,
......@@ -66,8 +66,8 @@ int fat_get_block(struct inode *inode, sector_t iblock,
return 0;
}
static ssize_t fat_file_write(struct file *filp, const char *buf, size_t count,
loff_t *ppos)
static ssize_t fat_file_write(struct file *filp, const char __user *buf,
size_t count, loff_t *ppos)
{
struct inode *inode = filp->f_dentry->d_inode;
int retval;
......
......@@ -18,13 +18,13 @@
#include <asm/uaccess.h>
#include <asm/bitops.h>
static ssize_t proc_file_read(struct file * file, char * buf,
static ssize_t proc_file_read(struct file *file, char __user *buf,
size_t nbytes, loff_t *ppos);
static ssize_t proc_file_write(struct file * file, const char * buffer,
static ssize_t proc_file_write(struct file *file, const char __user *buffer,
size_t count, loff_t *ppos);
static loff_t proc_file_lseek(struct file *, loff_t, int);
int proc_match(int len, const char *name,struct proc_dir_entry * de)
int proc_match(int len, const char *name, struct proc_dir_entry *de)
{
if (de->namelen != len)
return 0;
......@@ -45,7 +45,8 @@ static struct file_operations proc_file_operations = {
#define PROC_BLOCK_SIZE (PAGE_SIZE - 1024)
static ssize_t
proc_file_read(struct file * file, char * buf, size_t nbytes, loff_t *ppos)
proc_file_read(struct file *file, char __user *buf, size_t nbytes,
loff_t *ppos)
{
struct inode * inode = file->f_dentry->d_inode;
char *page;
......@@ -59,8 +60,7 @@ proc_file_read(struct file * file, char * buf, size_t nbytes, loff_t *ppos)
if (!(page = (char*) __get_free_page(GFP_KERNEL)))
return -ENOMEM;
while ((nbytes > 0) && !eof)
{
while ((nbytes > 0) && !eof) {
count = MIN(PROC_BLOCK_SIZE, nbytes);
start = NULL;
......@@ -184,7 +184,7 @@ proc_file_read(struct file * file, char * buf, size_t nbytes, loff_t *ppos)
}
static ssize_t
proc_file_write(struct file * file, const char * buffer,
proc_file_write(struct file *file, const char __user *buffer,
size_t count, loff_t *ppos)
{
struct inode *inode = file->f_dentry->d_inode;
......@@ -201,7 +201,7 @@ proc_file_write(struct file * file, const char * buffer,
static loff_t
proc_file_lseek(struct file * file, loff_t offset, int orig)
proc_file_lseek(struct file *file, loff_t offset, int orig)
{
lock_kernel();
......@@ -299,15 +299,16 @@ static int make_inode_number(void)
return i;
}
static int proc_readlink(struct dentry *dentry, char *buffer, int buflen)
static int
proc_readlink(struct dentry *dentry, char __user *buffer, int buflen)
{
char *s=PDE(dentry->d_inode)->data;
char *s = PDE(dentry->d_inode)->data;
return vfs_readlink(dentry, buffer, buflen, s);
}
static int proc_follow_link(struct dentry *dentry, struct nameidata *nd)
{
char *s=PDE(dentry->d_inode)->data;
char *s = PDE(dentry->d_inode)->data;
return vfs_follow_link(nd, s);
}
......
......@@ -27,7 +27,7 @@ static int open_kcore(struct inode * inode, struct file * filp)
return capable(CAP_SYS_RAWIO) ? 0 : -EPERM;
}
static ssize_t read_kcore(struct file *, char *, size_t, loff_t *);
static ssize_t read_kcore(struct file *, char __user *, size_t, loff_t *);
struct file_operations proc_kcore_operations = {
.read = read_kcore,
......@@ -267,7 +267,8 @@ static void elf_kcore_store_hdr(char *bufp, int nphdr, int dataoff)
/*
* read from the ELF header and then kernel memory
*/
static ssize_t read_kcore(struct file *file, char *buffer, size_t buflen, loff_t *fpos)
static ssize_t
read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
{
ssize_t acc = 0;
size_t size, tsz;
......
......@@ -17,7 +17,7 @@
extern wait_queue_head_t log_wait;
extern int do_syslog(int type, char * bug, int count);
extern int do_syslog(int type, char __user *bug, int count);
static int kmsg_open(struct inode * inode, struct file * file)
{
......@@ -30,13 +30,13 @@ static int kmsg_release(struct inode * inode, struct file * file)
return 0;
}
static ssize_t kmsg_read(struct file * file, char * buf,
static ssize_t kmsg_read(struct file *file, char __user *buf,
size_t count, loff_t *ppos)
{
return do_syslog(2,buf,count);
return do_syslog(2, buf, count);
}
static unsigned int kmsg_poll(struct file *file, poll_table * wait)
static unsigned int kmsg_poll(struct file *file, poll_table *wait)
{
poll_wait(file, &log_wait, wait);
if (do_syslog(9, 0, 0))
......
......@@ -343,7 +343,7 @@ static struct file_operations proc_modules_operations = {
#endif
extern struct seq_operations slabinfo_op;
extern ssize_t slabinfo_write(struct file *, const char *, size_t, loff_t *);
extern ssize_t slabinfo_write(struct file *, const char __user *, size_t, loff_t *);
static int slabinfo_open(struct inode *inode, struct file *file)
{
return seq_open(file, &slabinfo_op);
......@@ -548,8 +548,8 @@ static int execdomains_read_proc(char *page, char **start, off_t off,
* buffer. Use of the program readprofile is recommended in order to
* get meaningful info out of these data.
*/
static ssize_t read_profile(struct file *file, char *buf,
size_t count, loff_t *ppos)
static ssize_t
read_profile(struct file *file, char __user *buf, size_t count, loff_t *ppos)
{
unsigned long p = *ppos;
ssize_t read;
......@@ -580,13 +580,13 @@ static ssize_t read_profile(struct file *file, char *buf,
* Writing a 'profiling multiplier' value into it also re-sets the profiling
* interrupt frequency, on architectures that support this.
*/
static ssize_t write_profile(struct file * file, const char * buf,
static ssize_t write_profile(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
{
#ifdef CONFIG_SMP
extern int setup_profiling_timer (unsigned int multiplier);
if (count==sizeof(int)) {
if (count == sizeof(int)) {
unsigned int multiplier;
if (copy_from_user(&multiplier, buf, sizeof(int)))
......@@ -610,8 +610,8 @@ static struct file_operations proc_profile_operations = {
/*
* writing 'C' to /proc/sysrq-trigger is like sysrq-C
*/
static ssize_t write_sysrq_trigger(struct file *file, const char *buf,
size_t count, loff_t *ppos)
static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
size_t count, loff_t *ppos)
{
if (count) {
char c;
......
......@@ -112,11 +112,13 @@ static int ufs_create (struct inode * dir, struct dentry * dentry, int mode,
static int ufs_mknod (struct inode * dir, struct dentry *dentry, int mode, dev_t rdev)
{
struct inode * inode;
struct inode *inode;
int err;
if (!old_valid_dev(rdev))
return -EINVAL;
inode = ufs_new_inode(dir, mode);
int err = PTR_ERR(inode);
err = PTR_ERR(inode);
if (!IS_ERR(inode)) {
init_special_inode(inode, mode, rdev);
/* NOTE: that'll go when we get wide dev_t */
......
......@@ -53,7 +53,8 @@ xattr_free(void *ptr, size_t size)
* Extended attribute SET operations
*/
static long
setxattr(struct dentry *d, char *name, void *value, size_t size, int flags)
setxattr(struct dentry *d, char __user *name, void __user *value,
size_t size, int flags)
{
int error;
void *kvalue;
......@@ -94,7 +95,8 @@ setxattr(struct dentry *d, char *name, void *value, size_t size, int flags)
}
asmlinkage long
sys_setxattr(char *path, char *name, void *value, size_t size, int flags)
sys_setxattr(char __user *path, char __user *name, void __user *value,
size_t size, int flags)
{
struct nameidata nd;
int error;
......@@ -108,7 +110,8 @@ sys_setxattr(char *path, char *name, void *value, size_t size, int flags)
}
asmlinkage long
sys_lsetxattr(char *path, char *name, void *value, size_t size, int flags)
sys_lsetxattr(char __user *path, char __user *name, void __user *value,
size_t size, int flags)
{
struct nameidata nd;
int error;
......@@ -122,7 +125,8 @@ sys_lsetxattr(char *path, char *name, void *value, size_t size, int flags)
}
asmlinkage long
sys_fsetxattr(int fd, char *name, void *value, size_t size, int flags)
sys_fsetxattr(int fd, char __user *name, void __user *value,
size_t size, int flags)
{
struct file *f;
int error = -EBADF;
......@@ -139,7 +143,7 @@ sys_fsetxattr(int fd, char *name, void *value, size_t size, int flags)
* Extended attribute GET operations
*/
static ssize_t
getxattr(struct dentry *d, char *name, void *value, size_t size)
getxattr(struct dentry *d, char __user *name, void __user *value, size_t size)
{
ssize_t error;
void *kvalue;
......@@ -172,7 +176,8 @@ getxattr(struct dentry *d, char *name, void *value, size_t size)
}
asmlinkage ssize_t
sys_getxattr(char *path, char *name, void *value, size_t size)
sys_getxattr(char __user *path, char __user *name, void __user *value,
size_t size)
{
struct nameidata nd;
ssize_t error;
......@@ -186,7 +191,8 @@ sys_getxattr(char *path, char *name, void *value, size_t size)
}
asmlinkage ssize_t
sys_lgetxattr(char *path, char *name, void *value, size_t size)
sys_lgetxattr(char __user *path, char __user *name, void __user *value,
size_t size)
{
struct nameidata nd;
ssize_t error;
......@@ -200,7 +206,7 @@ sys_lgetxattr(char *path, char *name, void *value, size_t size)
}
asmlinkage ssize_t
sys_fgetxattr(int fd, char *name, void *value, size_t size)
sys_fgetxattr(int fd, char __user *name, void __user *value, size_t size)
{
struct file *f;
ssize_t error = -EBADF;
......@@ -217,7 +223,7 @@ sys_fgetxattr(int fd, char *name, void *value, size_t size)
* Extended attribute LIST operations
*/
static ssize_t
listxattr(struct dentry *d, char *list, size_t size)
listxattr(struct dentry *d, char __user *list, size_t size)
{
ssize_t error;
char *klist;
......@@ -243,7 +249,7 @@ listxattr(struct dentry *d, char *list, size_t size)
}
asmlinkage ssize_t
sys_listxattr(char *path, char *list, size_t size)
sys_listxattr(char __user *path, char __user *list, size_t size)
{
struct nameidata nd;
ssize_t error;
......@@ -257,7 +263,7 @@ sys_listxattr(char *path, char *list, size_t size)
}
asmlinkage ssize_t
sys_llistxattr(char *path, char *list, size_t size)
sys_llistxattr(char __user *path, char __user *list, size_t size)
{
struct nameidata nd;
ssize_t error;
......@@ -271,7 +277,7 @@ sys_llistxattr(char *path, char *list, size_t size)
}
asmlinkage ssize_t
sys_flistxattr(int fd, char *list, size_t size)
sys_flistxattr(int fd, char __user *list, size_t size)
{
struct file *f;
ssize_t error = -EBADF;
......@@ -288,7 +294,7 @@ sys_flistxattr(int fd, char *list, size_t size)
* Extended attribute REMOVE operations
*/
static long
removexattr(struct dentry *d, char *name)
removexattr(struct dentry *d, char __user *name)
{
int error;
char kname[XATTR_NAME_MAX + 1];
......@@ -313,7 +319,7 @@ removexattr(struct dentry *d, char *name)
}
asmlinkage long
sys_removexattr(char *path, char *name)
sys_removexattr(char __user *path, char __user *name)
{
struct nameidata nd;
int error;
......@@ -327,7 +333,7 @@ sys_removexattr(char *path, char *name)
}
asmlinkage long
sys_lremovexattr(char *path, char *name)
sys_lremovexattr(char __user *path, char __user *name)
{
struct nameidata nd;
int error;
......@@ -341,7 +347,7 @@ sys_lremovexattr(char *path, char *name)
}
asmlinkage long
sys_fremovexattr(int fd, char *name)
sys_fremovexattr(int fd, char __user *name)
{
struct file *f;
int error = -EBADF;
......
......@@ -290,7 +290,7 @@ enum {
#ifdef CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE
extern struct cpufreq_governor cpufreq_gov_performance;
#define CPUFREQ_DEFAULT_GOVERNOR &cpufreq_gov_performance
#elif CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE
#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE)
extern struct cpufreq_governor cpufreq_gov_userspace;
#define CPUFREQ_DEFAULT_GOVERNOR &cpufreq_gov_userspace
#endif
......
......@@ -48,9 +48,10 @@ struct file;
/* Kernel space functions implementing the user space "epoll" API */
asmlinkage long sys_epoll_create(int size);
asmlinkage long sys_epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
asmlinkage long sys_epoll_wait(int epfd, struct epoll_event *events, int maxevents,
int timeout);
asmlinkage long sys_epoll_ctl(int epfd, int op, int fd,
struct epoll_event __user *event);
asmlinkage long sys_epoll_wait(int epfd, struct epoll_event __user *events,
int maxevents, int timeout);
#ifdef CONFIG_EPOLL
......
......@@ -80,8 +80,8 @@ extern int dirty_expire_centisecs;
struct ctl_table;
struct file;
int dirty_writeback_centisecs_handler(struct ctl_table *, int, struct file *,
void *, size_t *);
int dirty_writeback_centisecs_handler(struct ctl_table *, int, struct file *,
void __user *, size_t *);
void page_writeback_init(void);
void balance_dirty_pages(struct address_space *mapping);
......
......@@ -643,7 +643,7 @@ static ctl_table vm_table[] = {
.data = &dirty_writeback_centisecs,
.maxlen = sizeof(dirty_writeback_centisecs),
.mode = 0644,
.proc_handler = dirty_writeback_centisecs_handler,
.proc_handler = &dirty_writeback_centisecs_handler,
},
{
.ctl_name = VM_DIRTY_EXPIRE_CS,
......
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