]> git.neil.brown.name Git - history.git/commitdiff
[PATCH] CONFIG_REGPARM breaks non-asmlinkage syscalls
authorAndreas Gruenbacher <agruen@suse.de>
Tue, 24 Feb 2004 04:29:27 +0000 (20:29 -0800)
committerJeff Garzik <jgarzik@redhat.com>
Tue, 24 Feb 2004 04:29:27 +0000 (20:29 -0800)
With CONFIG_REGPARM=y, syscalls must be declared asmlinkage or else
calling them will fail.

This fix adds a few missing declarations for sys_fadvise64_64() and
sys_remap_file_pages().

arch/ia64/ia32/sys_ia32.c
arch/x86_64/ia32/sys_ia32.c
include/linux/mm.h
mm/fremap.c

index b2c9c7778835b7e996942cac0f83cbd6c76b6d1b..6eeedd41dc8270d7206e06f429ed9c8f213cdd6d 100644 (file)
@@ -2990,7 +2990,7 @@ sys32_timer_create(u32 clock, struct sigevent32 *se32, timer_t *timer_id)
        return err;
 }
 
-extern long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);
+asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);
 
 long sys32_fadvise64_64(int fd, __u32 offset_low, __u32 offset_high, 
                        __u32 len_low, __u32 len_high, int advice)
index ddc9e93a48455deac11f639645f9aadf83cfbd52..33590778008160c6292db930df96ab6ee4b8f409 100644 (file)
@@ -1895,7 +1895,7 @@ sys32_timer_create(u32 clock, struct sigevent32 *se32, timer_t *timer_id)
        return err; 
 } 
 
-extern long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);
+asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);
 
 long sys32_fadvise64_64(int fd, __u32 offset_low, __u32 offset_high, 
                        __u32 len_low, __u32 len_high, int advice)
index d21630b8f96db182d4e69f7ad98fdd499c3b1399..aa0f2d50c887d8689e75ff205e3cc08dd94798dc 100644 (file)
@@ -455,8 +455,8 @@ extern int install_file_pte(struct mm_struct *mm, struct vm_area_struct *vma, un
 extern int handle_mm_fault(struct mm_struct *mm,struct vm_area_struct *vma, unsigned long address, int write_access);
 extern int make_pages_present(unsigned long addr, unsigned long end);
 extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
-extern long sys_remap_file_pages(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long nonblock);
-extern long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);
+asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long nonblock);
+asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice);
 void put_dirty_page(struct task_struct *tsk, struct page *page,
                        unsigned long address, pgprot_t prot);
 
index 9d78500e65f1d96ed5122fefb418e54f6f9de53f..dacebb172f6f571032c7cabfd0abc52237a2031a 100644 (file)
@@ -155,7 +155,7 @@ err_unlock:
  * protection is used. Arbitrary protections might be implemented in the
  * future.
  */
-long sys_remap_file_pages(unsigned long start, unsigned long size,
+asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size,
        unsigned long __prot, unsigned long pgoff, unsigned long flags)
 {
        struct mm_struct *mm = current->mm;