Linux 2.6.28.1
Subsystems (64)
We (the -stable team) are announcing the release of the 2.6.28.1 kernel.
It contains a wide range of bugfixes, and all users of the 2.6.28 kernel series are strongly encouraged to upgrade.
I'll also be replying to this message with a copy of the patch between 2.6.28 and 2.6.28.1
The updated 2.6.28.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.28.y.git
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.28.y.git;a=summarythanks,
greg k-h
------------
Makefile | 2 arch/Kconfig | 3 arch/alpha/kernel/entry.S | 8 - arch/alpha/kernel/systbls.S | 2 arch/arm/kernel/calls.S | 2 arch/cris/arch-v10/kernel/entry.S | 2 arch/cris/arch-v32/kernel/entry.S | 2 arch/h8300/kernel/syscalls.S | 2 arch/ia64/ia32/ia32_entry.S | 2 arch/ia64/include/asm/unistd.h | 2 arch/ia64/kernel/entry.S | 2 arch/ia64/kernel/sys_ia64.c | 2 arch/m68k/kernel/entry.S | 2 arch/m68knommu/kernel/syscalltable.S | 2 arch/mips/kernel/scall32-o32.S | 2 arch/mn10300/kernel/entry.S | 2 arch/powerpc/Kconfig | 1 arch/powerpc/include/asm/systbl.h | 2 arch/powerpc/platforms/pseries/Kconfig | 2 arch/s390/Kconfig | 1 arch/s390/kernel/compat_wrapper.S | 4 arch/s390/kernel/entry.h | 16 +- arch/s390/kernel/process.c | 9 - arch/s390/kernel/signal.c | 19 +-- arch/s390/kernel/sys_s390.c | 35 +++-- arch/s390/kernel/syscalls.S | 12 +- arch/sh/include/asm/syscalls_32.h | 6 - arch/sh/kernel/sys_sh32.c | 2 arch/sh/kernel/syscalls_32.S | 4 arch/sh/kernel/syscalls_64.S | 2 arch/sparc/kernel/entry.S | 4 arch/sparc/kernel/systbls.S | 4 arch/sparc64/kernel/syscalls.S | 2 arch/sparc64/kernel/systbls.S | 4 arch/x86/Kconfig | 2 arch/x86/kernel/cpu/addon_cpuid_features.c | 8 + arch/x86/kernel/cpu/intel.c | 8 + arch/x86/kernel/head64.c | 2 arch/x86/kernel/head_64.S | 2 arch/x86/kernel/syscall_table_32.S | 2 arch/x86/kernel/tlb_uv.c | 9 - arch/x86/mm/fault.c | 2 drivers/dma/ioat_dma.c | 13 +- drivers/hid/hid-sony.c | 2 drivers/ide/tx4938ide.c | 4 drivers/ide/tx4939ide.c | 10 + drivers/md/bitmap.c | 8 - drivers/md/dm-log.c | 5 drivers/md/dm-raid1.c | 6 - drivers/net/wireless/ath5k/phy.c | 4 drivers/net/wireless/ath5k/reset.c | 4 drivers/net/wireless/ath9k/recv.c | 5 drivers/net/wireless/iwlwifi/iwl-agn.c | 12 -- drivers/net/wireless/iwlwifi/iwl-rx.c | 29 +++- drivers/pci/syscall.c | 12 -- drivers/scsi/eata.c | 15 ++ drivers/scsi/ibmvscsi/ibmvfc.c | 25 ++-- drivers/scsi/ibmvscsi/ibmvfc.h | 6 - drivers/scsi/mvsas.c | 2 drivers/scsi/pcmcia/aha152x_stub.c | 2 drivers/usb/host/isp1760-if.c | 113 +++++++++++-------- drivers/usb/misc/emi26.c | 2 drivers/usb/storage/unusual_devs.h | 23 +++ fs/affs/file.c | 2 fs/afs/write.c | 2 fs/aio.c | 22 +-- fs/buffer.c | 6 - fs/cifs/cifs_dfs_ref.c | 48 ++++++-- fs/cifs/file.c | 2 fs/compat.c | 6 - fs/dcache.c | 7 - fs/dcookies.c | 10 + fs/ecryptfs/inode.c | 3 fs/ecryptfs/mmap.c | 2 fs/eventfd.c | 5 fs/eventpoll.c | 18 +-- fs/exec.c | 2 fs/ext3/inode.c | 2 fs/ext3/namei.c | 3 fs/ext4/inode.c | 4 fs/ext4/namei.c | 3 fs/fcntl.c | 11 + fs/filesystems.c | 2 fs/fuse/file.c | 4 fs/gfs2/ops_address.c | 2 fs/hostfs/hostfs_kern.c | 2 fs/inotify_user.c | 9 - fs/ioctl.c | 2 fs/ioprio.c | 5 fs/jffs2/file.c | 2 fs/libfs.c | 2 fs/locks.c | 2 fs/minix/dir.c | 2 fs/namei.c | 48 ++++---- fs/namespace.c | 13 +- fs/nfs/file.c | 2 fs/nfs/read.c | 6 - fs/nfsctl.c | 4 fs/open.c | 82 ++++++++----- fs/pipe.c | 4 fs/quota.c | 3 fs/read_write.c | 49 +++++--- fs/readdir.c | 9 + fs/reiserfs/inode.c | 2 fs/select.c | 29 ++-- fs/signalfd.c | 8 - fs/smbfs/file.c | 2 fs/splice.c | 12 +- fs/stat.c | 38 +++--- fs/super.c | 2 fs/sync.c | 32 ++++- fs/timerfd.c | 10 - fs/ubifs/file.c | 9 - fs/utimes.c | 11 + fs/xattr.c | 53 ++++---- fs/xfs/xfs_dir2_block.c | 7 - fs/xfs/xfs_dir2_leaf.c | 6 - fs/xfs/xfs_dir2_sf.c | 15 +- include/linux/compat.h | 13 ++ include/linux/fs.h | 5 include/linux/mm.h | 1 include/linux/pagemap.h | 3 include/linux/radix-tree.h | 2 include/linux/syscalls.h | 171 ++++++++++++++++++++--------- include/linux/time.h | 1 ipc/mqueue.c | 28 ++-- ipc/msg.c | 12 +- ipc/sem.c | 18 ++- ipc/shm.c | 8 - kernel/acct.c | 2 kernel/capability.c | 4 kernel/cgroup.c | 6 - kernel/exec_domain.c | 3 kernel/exit.c | 17 +- kernel/fork.c | 4 kernel/futex.c | 17 +- kernel/hrtimer.c | 4 kernel/itimer.c | 7 - kernel/kexec.c | 5 kernel/module.c | 10 - kernel/posix-timers.c | 43 +++---- kernel/printk.c | 7 - kernel/ptrace.c | 2 kernel/sched.c | 30 ++--- kernel/sched_clock.c | 5 kernel/signal.c | 59 ++++------ kernel/sys.c | 72 ++++++------ kernel/sys_ni.c | 1 kernel/sysctl.c | 4 kernel/time.c | 14 +- kernel/time/timekeeping.c | 7 - kernel/timer.c | 18 +-- kernel/trace/ring_buffer.c | 19 ++- kernel/uid16.c | 39 +++--- mm/fadvise.c | 18 ++- mm/filemap.c | 22 ++- mm/fremap.c | 4 mm/madvise.c | 2 mm/mempolicy.c | 24 +--- mm/migrate.c | 8 - mm/mincore.c | 4 mm/mlock.c | 8 - mm/mmap.c | 4 mm/mprotect.c | 4 mm/mremap.c | 6 - mm/msync.c | 2 mm/nommu.c | 10 - mm/swapfile.c | 4 mm/vmalloc.c | 5 net/socket.c | 63 +++++----- security/device_cgroup.c | 3 security/keys/keyctl.c | 22 +-- sound/pci/hda/patch_analog.c | 5 sound/pci/hda/patch_sigmatel.c | 2 sound/usb/caiaq/caiaq-device.h | 1 sound/usb/caiaq/caiaq-midi.c | 32 +++-- 176 files changed, 1182 insertions(+), 885 deletions(-)
Adam Lackorzynski (1):
vmalloc.c: fix flushing in vmap_page_range()
Al Viro (1):
fix switch_names() breakage in short-to-short case
Andi Kleen (1):
x86: avoid theoretical vmalloc fault loop
Atsushi Nemoto (2):
tx493[89]ide: Fix length for __ide_flush_dcache_range
tx4939ide: Do not use zero count PRD entry
Benjamin Herrenschmidt (1):
powerpc: Enable syscall wrappers for 64-bit
Bernd Schmidt (1):
Fix timeouts in sys_pselect7
Brian King (3):
powerpc: Disable Collaborative Memory Manager for kdump
ibmvfc: Delay NPIV login retry and add retries
ibmvfc: Improve async event handling
Christoph Hellwig (1):
XFS: truncate readdir offsets to signed 32 bit values
Clemens Fruhwirth (1):
ALSA: hda - Fix typos for AD1882 codecs
Cliff Wickman (1):
x86, UV: remove erroneous BAU initialization
Dan Williams (1):
ioat: fix self test for multi-channel case
Daniel Drake (1):
USB: unusual_devs.h additions for Pentax K10D
Duane Griffin (1):
eCryptfs: check readlink result was not an error before using it
Evgeniy Dushistov (1):
minix: fix add link's wrong position calculation
FUJITA Tomonori (1):
SCSI: eata: fix the data buffer accessors conversion regression
Felix Fietkau (1):
ath5k: ignore the return value of ath5k_hw_noise_floor_calibration
Greg Kroah-Hartman (1):
Linux 2.6.28.1
Heiko Carstens (43):
Move compat system call declarations to compat header file Convert all system calls to return a long
Rename old_readdir to sys_old_readdir
Remove __attribute__((weak)) from sys_pipe/sys_pipe2 Make sys_pselect7 static
Make sys_syslog a conditional system call
System call wrapper infrastructure
s390: enable system call wrappers
System call wrapper special cases
System call wrappers part 01
System call wrappers part 02
System call wrappers part 03
System call wrappers part 04
System call wrappers part 05
System call wrappers part 06
System call wrappers part 07
System call wrappers part 08
System call wrappers part 09
System call wrappers part 10
System call wrappers part 11
System call wrappers part 12
System call wrappers part 13
System call wrappers part 14
System call wrappers part 15
System call wrappers part 16
System call wrappers part 17
System call wrappers part 18
System call wrappers part 19
System call wrappers part 20
System call wrappers part 21
System call wrappers part 22
System call wrappers part 23
System call wrappers part 24
System call wrappers part 25
System call wrappers part 26
System call wrappers part 27
System call wrappers part 28
System call wrappers part 29
System call wrappers part 30
System call wrappers part 31
System call wrappers part 32
System call wrappers part 33
s390 specific system call wrappers
Jiri Kosina (1):
HID: fix error condition propagation in hid-sony driver
Jiri Slaby (1):
x86: fix RIP printout in early_idt_handler
Joerg Roedel (1):
x86: default to SWIOTLB=y on x86_64
Jonathan Brassow (1):
dm raid1: fix error count
KOSAKI Motohiro (1):
getrusage: RUSAGE_THREAD should return ru_utime and ru_stime
Karl Bongers (1):
USB: isp1760: Fix probe in PCI glue code
Larry Finger (1):
SCSI: aha152x_cs: Fix regression that keeps driver from using shared interrupts
Li Zefan (1):
cgroups: fix a race between cgroup_clone and umount
Luis R. Rodriguez (1):
ath9k: enable RXing of beacons on STA/IBSS
Marcin Slusarz (1):
USB: emi26: fix oops on load
Michael Kerrisk (1):
inotify: fix type errors in interfaces
NeilBrown (1):
md: fix bitmap-on-external-file bug.
Nguyen Anh Quynh (1):
USB: another unusual_devs entry for another bad Argosy storage device
Nick Piggin (3):
fs: symlink write_begin allocation context fix mm lockless pagecache barrier fix
mm: fix assertion
Oliver Neukum (1):
USB: storage: extend unusual range for 067b:3507
Paulo Afonso Graner Fessel (1):
USB: storage: recognizing and enabling Nokia 5200 cell phoes
Ravikiran G Thirumalai (1):
x86: fix incorrect __read_mostly on _boot_cpu_pda
Reinhard Nissl (1):
mvsas: increase port type detection delay to suit Seagate's 10k6 drive ST3450856SS 0003
Sebastian Andrzej Siewior (1):
USB: isp1760: use a specific PLX bridge instead of any bdridge
Serge E. Hallyn (1):
devices cgroup: allow mkfifo
Steve French (1):
CIFS: make sure that DFS pathnames are properly formed
Steven Rostedt (2):
ring-buffer: prevent false positive warning
ring-buffer: fix dangling commit race
Suresh Siddha (1):
x86: fix intel x86_64 llc_shared_map/cpu_llc_id anomolies
Takahiro Yasui (1):
dm log: fix dm_io_client leak on error paths
Takashi Iwai (3):
ALSA: hda - Add quirk for another HP dv7
ALSA: hda - Add quirk for HP6730B laptop
ALSA: caiaq - Fix Oops with MIDI
Thomas Gleixner (1):
sched_clock: prevent scd->clock from moving backwards, take #2
Wu Fengguang (1):
nfs: remove redundant tests on reading new pages
Zhu Yi (1):
iwlwifi: use GFP_KERNEL to allocate Rx SKB memory
Makefile +1 -1
@@ -1,7 +1,7 @@ VERSION = 2 PATCHLEVEL = 6 SUBLEVEL = 28 -EXTRAVERSION = +EXTRAVERSION = .1 NAME = Erotic Pickled Herring # *DOCUMENTATION*
arch/Kconfig +3 -0
@@ -60,6 +60,9 @@ config HAVE_EFFICIENT_UNALIGNED_ACCESS See Documentation/unaligned-memory-access.txt for more information on the topic of unaligned memory accesses. +config HAVE_SYSCALL_WRAPPERS + bool + config KRETPROBES def_bool y depends on KPROBES && HAVE_KRETPROBES
arch/alpha/kernel/entry.S +4 -4
@@ -894,9 +894,9 @@ sys_getxpid: .end sys_getxpid .align 4 - .globl sys_pipe - .ent sys_pipe -sys_pipe: + .globl sys_alpha_pipe + .ent sys_alpha_pipe +sys_alpha_pipe: lda $sp, -16($sp) stq $26, 0($sp) .prologue 0
@@ -914,7 +914,7 @@ sys_pipe: stq $1, 80+16($sp) 1: lda $sp, 16($sp) ret -.end sys_pipe +.end sys_alpha_pipe .align 4 .globl sys_execve
arch/alpha/kernel/systbls.S +1 -1
@@ -52,7 +52,7 @@ sys_call_table: .quad sys_setpgid .quad alpha_ni_syscall /* 40 */ .quad sys_dup - .quad sys_pipe + .quad sys_alpha_pipe .quad osf_set_program_attributes .quad alpha_ni_syscall .quad sys_open /* 45 */
arch/arm/kernel/calls.S +1 -1
@@ -98,7 +98,7 @@ CALL(sys_uselib) CALL(sys_swapon) CALL(sys_reboot) - CALL(OBSOLETE(old_readdir)) /* used by libc4 */ + CALL(OBSOLETE(sys_old_readdir)) /* used by libc4 */ /* 90 */ CALL(OBSOLETE(old_mmap)) /* used by libc4 */ CALL(sys_munmap) CALL(sys_truncate)
arch/cris/arch-v10/kernel/entry.S +1 -1
@@ -691,7 +691,7 @@ sys_call_table: .long sys_uselib .long sys_swapon .long sys_reboot - .long old_readdir + .long sys_old_readdir .long old_mmap /* 90 */ .long sys_munmap .long sys_truncate
arch/cris/arch-v32/kernel/entry.S +1 -1
@@ -614,7 +614,7 @@ sys_call_table: .long sys_uselib .long sys_swapon .long sys_reboot - .long old_readdir + .long sys_old_readdir .long old_mmap /* 90 */ .long sys_munmap .long sys_truncate
arch/h8300/kernel/syscalls.S +1 -1
@@ -103,7 +103,7 @@ SYMBOL_NAME_LABEL(sys_call_table) .long SYMBOL_NAME(sys_uselib) .long SYMBOL_NAME(sys_swapon) .long SYMBOL_NAME(sys_reboot) - .long SYMBOL_NAME(old_readdir) + .long SYMBOL_NAME(sys_old_readdir) .long SYMBOL_NAME(old_mmap) /* 90 */ .long SYMBOL_NAME(sys_munmap) .long SYMBOL_NAME(sys_truncate)
arch/ia64/ia32/ia32_entry.S +1 -1
@@ -220,7 +220,7 @@ ia32_syscall_table: data8 sys_mkdir data8 sys_rmdir /* 40 */ data8 sys_dup - data8 sys_pipe + data8 sys_ia64_pipe data8 compat_sys_times data8 sys_ni_syscall /* old prof syscall holder */ data8 sys32_brk /* 45 */
arch/ia64/include/asm/unistd.h +1 -1
@@ -364,7 +364,7 @@ struct pt_regs;struct sigaction ;long sys_execve (char __user *filename,char __user *__user *argv,char __user *__user *envp,struct pt_regs *regs); -asmlinkage long sys_pipe (void ); +asmlinkage long sys_ia64_pipe (void ); asmlinkage long sys_rt_sigaction(int sig, const struct sigaction __user *act, struct sigaction __user *oact,
arch/ia64/kernel/entry.S +1 -1
@@ -1442,7 +1442,7 @@ sys_call_table: data8 sys_mkdir // 1055 data8 sys_rmdir data8 sys_dup - data8 sys_pipe + data8 sys_ia64_pipe data8 sys_times data8 ia64_brk // 1060 data8 sys_setgid
arch/ia64/kernel/sys_ia64.c +1 -1
@@ -154,7 +154,7 @@ out:* and r9) as this is faster than doing a copy_to_user(). */ asmlinkage long -sys_pipe (void ) +sys_ia64_pipe (void ) {struct pt_regs *regs =task_pt_regs (current);int fd[2 ];
arch/m68k/kernel/entry.S +1 -1
@@ -513,7 +513,7 @@ sys_call_table: .long sys_uselib .long sys_swapon .long sys_reboot - .long old_readdir + .long sys_old_readdir .long old_mmap /* 90 */ .long sys_munmap .long sys_truncate
arch/m68knommu/kernel/syscalltable.S +1 -1
@@ -107,7 +107,7 @@ ENTRY(sys_call_table) .long sys_uselib .long sys_ni_syscall /* sys_swapon */ .long sys_reboot - .long old_readdir + .long sys_old_readdir .long old_mmap /* 90 */ .long sys_munmap .long sys_truncate
arch/mips/kernel/scall32-o32.S +1 -1
@@ -398,7 +398,7 @@ einval: li v0, -ENOSYS sys sys_uselib 1 sys sys_swapon 2 sys sys_reboot 3 - sys old_readdir 3 + sys sys_old_readdir 3 sys old_mmap 6 /* 4090 */ sys sys_munmap 2 sys sys_truncate 2
arch/mn10300/kernel/entry.S +1 -1
@@ -478,7 +478,7 @@ ENTRY(sys_call_table) .long sys_uselib .long sys_swapon .long sys_reboot - .long old_readdir + .long sys_old_readdir .long old_mmap /* 90 */ .long sys_munmap .long sys_truncate
arch/powerpc/Kconfig +1 -0
@@ -121,6 +121,7 @@ config PPC select HAVE_DMA_ATTRS if PPC64 select USE_GENERIC_SMP_HELPERS if SMP select HAVE_OPROFILE + select HAVE_SYSCALL_WRAPPERS if PPC64 config EARLY_PRINTK bool
arch/powerpc/include/asm/systbl.h +1 -1
@@ -92,7 +92,7 @@ COMPAT_SYS_SPU(readlink) SYSCALL(uselib) SYSCALL(swapon) SYSCALL(reboot) -SYSX(sys_ni_syscall,compat_sys_old_readdir,old_readdir) +SYSX(sys_ni_syscall,compat_sys_old_readdir,sys_old_readdir) SYSCALL_SPU(mmap) SYSCALL_SPU(munmap) SYSCALL_SPU(truncate)
arch/powerpc/platforms/pseries/Kconfig +1 -1
@@ -54,7 +54,7 @@ config PPC_SMLPAR config CMM tristate "Collaborative memory management" - depends on PPC_SMLPAR + depends on PPC_SMLPAR && !CRASH_DUMP default y help Select this option, if you want to enable the kernel interface
arch/s390/Kconfig +1 -0
@@ -70,6 +70,7 @@ mainmenu "Linux Kernel Configuration" config S390 def_bool y + select HAVE_SYSCALL_WRAPPERS select HAVE_OPROFILE select HAVE_KPROBES select HAVE_KRETPROBES
arch/s390/kernel/compat_wrapper.S +2 -2
@@ -547,7 +547,7 @@ sys32_setdomainname_wrapper: .globl sys32_newuname_wrapper sys32_newuname_wrapper: llgtr %r2,%r2 # struct new_utsname * - jg s390x_newuname # branch to system call + jg sys_s390_newuname # branch to system call .globl compat_sys_adjtimex_wrapper compat_sys_adjtimex_wrapper:
@@ -615,7 +615,7 @@ sys32_sysfs_wrapper: .globl sys32_personality_wrapper sys32_personality_wrapper: llgfr %r2,%r2 # unsigned long - jg s390x_personality # branch to system call + jg sys_s390_personality # branch to system call .globl sys32_setfsuid16_wrapper sys32_setfsuid16_wrapper:
arch/s390/kernel/entry.h +8 -8
@@ -30,23 +30,23 @@ struct fadvise64_64_args;struct old_sigaction ;struct sel_arg_struct ; -long sys_pipe (unsigned long __user *fildes);long sys_mmap2 (struct mmap_arg_struct __user *arg); -long old_mmap (struct mmap_arg_struct __user *arg); +long sys_s390_old_mmap (struct mmap_arg_struct __user *arg);long sys_ipc (uint call,int first,unsigned long second,unsigned long third,void __user *ptr); -long s390x_newuname (struct new_utsname __user *name); -long s390x_personality (unsigned long personality); -long s390_fadvise64 (int fd,u32 offset_high,u32 offset_low, +long sys_s390_newuname (struct new_utsname __user *name); +long sys_s390_personality (unsigned long personality); +long sys_s390_fadvise64 (int fd,u32 offset_high,u32 offset_low,size_t len,int advice); -long s390_fadvise64_64 (struct fadvise64_64_args __user *args); -long s390_fallocate (int fd,int mode,loff_t offset,u32 len_high,u32 len_low); +long sys_s390_fadvise64_64 (struct fadvise64_64_args __user *args); +long sys_s390_fallocate (int fd,int mode,loff_t offset,u32 len_high, +u32 len_low);long sys_fork (void );long sys_clone (void );long sys_vfork (void );void execve_tail (void );long sys_execve (void ); -int sys_sigsuspend (int history0,int history1,old_sigset_t mask); +long sys_sigsuspend (int history0,int history1,old_sigset_t mask);long sys_sigaction (int sig,const struct old_sigaction __user *act,struct old_sigaction __user *oact);long sys_sigaltstack (const stack_t __user *uss,stack_t __user *uoss);
arch/s390/kernel/process.c +5 -4
@@ -38,6 +38,7 @@#include <linux/utsname.h> #include <linux/tick.h> #include <linux/elfcore.h> +#include <linux/syscalls.h> #include <asm/uaccess.h> #include <asm/pgtable.h> #include <asm/system.h>
@@ -260,13 +261,13 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long new_stackp,return 0 ; } -asmlinkage long sys_fork (void ) +SYSCALL_DEFINE0 (fork) {struct pt_regs *regs =task_pt_regs (current);return do_fork (SIGCHLD , regs->gprs[15 ], regs,0 ,NULL ,NULL ); } -asmlinkage long sys_clone (void ) +SYSCALL_DEFINE0 (clone) {struct pt_regs *regs =task_pt_regs (current);unsigned long clone_flags;
@@ -293,7 +294,7 @@ asmlinkage long sys_clone(void)* do not have enough call-clobbered registers to hold all * the information you need. */ -asmlinkage long sys_vfork (void ) +SYSCALL_DEFINE0 (vfork) {struct pt_regs *regs =task_pt_regs (current); return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD,
@@ -313,7 +314,7 @@ asmlinkage void execve_tail(void)/* * sys_execve() executes a new program. */ -asmlinkage long sys_execve (void ) +SYSCALL_DEFINE0 (execve) {struct pt_regs *regs =task_pt_regs (current);char *filename;
arch/s390/kernel/signal.c +8 -11
@@ -25,6 +25,7 @@#include <linux/personality.h> #include <linux/binfmts.h> #include <linux/tracehook.h> +#include <linux/syscalls.h> #include <asm/ucontext.h> #include <asm/uaccess.h> #include <asm/lowcore.h>
@@ -53,8 +54,7 @@ typedef struct/* * Atomically swap in the new signal mask, and wait for a signal. */ -asmlinkage int -sys_sigsuspend (int history0,int history1,old_sigset_t mask) +SYSCALL_DEFINE3(sigsuspend, int, history0, int, history1, old_sigset_t, mask) { mask &= _BLOCKABLE;spin_lock_irq (¤t->sighand->siglock);
@@ -70,9 +70,8 @@ sys_sigsuspend(int history0, int history1, old_sigset_t mask)return -ERESTARTNOHAND ; } -asmlinkage long -sys_sigaction (int sig,const struct old_sigaction __user *act, -struct old_sigaction __user *oact) +SYSCALL_DEFINE3(sigaction, int, sig, const struct old_sigaction __user *, act, + struct old_sigaction __user *, oact) {struct k_sigaction new_ka, old_ka;int ret;
@@ -102,15 +101,13 @@ sys_sigaction(int sig, const struct old_sigaction __user *act,return ret; } -asmlinkage long -sys_sigaltstack (const stack_t __user *uss,stack_t __user *uoss) +SYSCALL_DEFINE2(sigaltstack, const stack_t __user *, uss, + stack_t __user *, uoss) {struct pt_regs *regs =task_pt_regs (current);return do_sigaltstack (uss, uoss, regs->gprs[15 ]); } - -/* Returns non-zero on fault. */ static int save_sigregs (struct pt_regs *regs,_sigregs __user *sregs) {
@@ -164,7 +161,7 @@ static int restore_sigregs(struct pt_regs *regs, _sigregs __user *sregs)return 0 ; } -asmlinkage long sys_sigreturn (void ) +SYSCALL_DEFINE0 (sigreturn) {struct pt_regs *regs =task_pt_regs (current);sigframe __user *frame = (sigframe __user *)regs->gprs[15 ];
@@ -191,7 +188,7 @@ badframe:return 0 ; } -asmlinkage long sys_rt_sigreturn (void ) +SYSCALL_DEFINE0 (rt_sigreturn) {struct pt_regs *regs =task_pt_regs (current);rt_sigframe __user *frame = (rt_sigframe __user *)regs->gprs[15 ];
arch/s390/kernel/sys_s390.c +21 -14
@@ -29,6 +29,7 @@#include <linux/personality.h> #include <linux/unistd.h> #include <linux/ipc.h> +#include <linux/syscalls.h> #include <asm/uaccess.h> #include "entry.h"
@@ -74,7 +75,7 @@ struct mmap_arg_struct {unsigned long offset; }; -asmlinkage long sys_mmap2 (struct mmap_arg_struct __user *arg) +SYSCALL_DEFINE1(mmap2, struct mmap_arg_struct __user *, arg) {struct mmap_arg_struct a;int error = -EFAULT ;
@@ -86,7 +87,7 @@ out:return error; } -asmlinkage long old_mmap (struct mmap_arg_struct __user *arg) +SYSCALL_DEFINE1(s390_old_mmap, struct mmap_arg_struct __user *, arg) {struct mmap_arg_struct a;long error = -EFAULT ;
@@ -127,8 +128,8 @@ asmlinkage long old_select(struct sel_arg_struct __user *arg)* * This is really horribly ugly. */ -asmlinkage long sys_ipc (uint call,int first,unsigned long second, -unsigned long third,void __user *ptr) +SYSCALL_DEFINE5(ipc, uint, call, int, first, unsigned long, second, + unsigned long, third, void __user *, ptr) {struct ipc_kludge tmp;int ret;
@@ -194,7 +195,7 @@ asmlinkage long sys_ipc(uint call, int first, unsigned long second, }#ifdef CONFIG_64BIT -asmlinkage long s390x_newuname (struct new_utsname __user *name) +SYSCALL_DEFINE1(s390_newuname, struct new_utsname __user *, name) {int ret =sys_newuname (name);
@@ -205,7 +206,7 @@ asmlinkage long s390x_newuname(struct new_utsname __user *name)return ret; } -asmlinkage long s390x_personality (unsigned long personality) +SYSCALL_DEFINE1(s390_personality, unsigned long, personality) {int ret;
@@ -224,15 +225,13 @@ asmlinkage long s390x_personality(unsigned long personality)*/ #ifndef CONFIG_64BIT -asmlinkage long -s390_fadvise64 (int fd,u32 offset_high,u32 offset_low,size_t len,int advice) +SYSCALL_DEFINE5(s390_fadvise64, int, fd, u32, offset_high, u32, offset_low, + size_t, len, int, advice) { return sys_fadvise64(fd, (u64) offset_high << 32 | offset_low, len, advice); } -#endif - struct fadvise64_64_args { int fd; long long offset;
@@ -240,8 +239,7 @@ struct fadvise64_64_args {int advice; }; -asmlinkage long -s390_fadvise64_64 (struct fadvise64_64_args __user *args) +SYSCALL_DEFINE1(s390_fadvise64_64, struct fadvise64_64_args __user *, args) {struct fadvise64_64_args a;
@@ -250,7 +248,6 @@ s390_fadvise64_64(struct fadvise64_64_args __user *args)return sys_fadvise64_64 (a.fd, a.offset, a.len, a.advice); } -#ifndef CONFIG_64BIT /* * This is a wrapper to call sys_fallocate(). For 31 bit s390 the last * 64 bit argument "len" is split into the upper and lower 32 bits. The
@@ -263,9 +260,19 @@ s390_fadvise64_64(struct fadvise64_64_args __user *args)* to * %r2: fd, %r3: mode, %r4/%r5: offset, 96(%r15)-103(%r15): len */ -asmlinkage long s390_fallocate (int fd,int mode,loff_t offset, +SYSCALL_DEFINE (s390_fallocate)(int fd,int mode,loff_t offset,u32 len_high,u32 len_low) {return sys_fallocate (fd, mode, offset, ((u64 )len_high <<32 ) | len_low); } +#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS +asmlinkage long SyS_s390_fallocate (long fd,long mode,loff_t offset, +long len_high,long len_low) +{ +return SYSC_s390_fallocate ((int ) fd, (int ) mode, offset, + (u32 ) len_high, (u32 ) len_low); +} +SYSCALL_ALIAS (sys_s390_fallocate, SyS_s390_fallocate); +#endif +#endif
arch/s390/kernel/syscalls.S +6 -6
@@ -98,7 +98,7 @@ SYSCALL(sys_uselib,sys_uselib,sys32_uselib_wrapper) SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper) SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper) SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */ -SYSCALL(old_mmap,old_mmap,old32_mmap_wrapper) /* 90 */ +SYSCALL(sys_s390_old_mmap,sys_s390_old_mmap,old32_mmap_wrapper) /* 90 */ SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper) SYSCALL(sys_truncate,sys_truncate,sys32_truncate_wrapper) SYSCALL(sys_ftruncate,sys_ftruncate,sys32_ftruncate_wrapper)
@@ -130,7 +130,7 @@ SYSCALL(sys_fsync,sys_fsync,sys32_fsync_wrapper) SYSCALL(sys_sigreturn,sys_sigreturn,sys32_sigreturn) SYSCALL(sys_clone,sys_clone,sys32_clone) /* 120 */ SYSCALL(sys_setdomainname,sys_setdomainname,sys32_setdomainname_wrapper) -SYSCALL(sys_newuname,s390x_newuname,sys32_newuname_wrapper) +SYSCALL(sys_newuname,sys_s390_newuname,sys32_newuname_wrapper) NI_SYSCALL /* modify_ldt for i386 */ SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper) SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */
@@ -144,7 +144,7 @@ SYSCALL(sys_getpgid,sys_getpgid,sys32_getpgid_wrapper) SYSCALL(sys_fchdir,sys_fchdir,sys32_fchdir_wrapper) SYSCALL(sys_bdflush,sys_bdflush,sys32_bdflush_wrapper) SYSCALL(sys_sysfs,sys_sysfs,sys32_sysfs_wrapper) /* 135 */ -SYSCALL(sys_personality,s390x_personality,sys32_personality_wrapper) +SYSCALL(sys_personality,sys_s390_personality,sys32_personality_wrapper) NI_SYSCALL /* for afs_syscall */ SYSCALL(sys_setfsuid16,sys_ni_syscall,sys32_setfsuid16_wrapper) /* old setfsuid16 syscall */ SYSCALL(sys_setfsgid16,sys_ni_syscall,sys32_setfsgid16_wrapper) /* old setfsgid16 syscall */
@@ -261,7 +261,7 @@ SYSCALL(sys_epoll_create,sys_epoll_create,sys_epoll_create_wrapper) SYSCALL(sys_epoll_ctl,sys_epoll_ctl,sys_epoll_ctl_wrapper) /* 250 */ SYSCALL(sys_epoll_wait,sys_epoll_wait,sys_epoll_wait_wrapper) SYSCALL(sys_set_tid_address,sys_set_tid_address,sys32_set_tid_address_wrapper) -SYSCALL(s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper) +SYSCALL(sys_s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper) SYSCALL(sys_timer_create,sys_timer_create,sys32_timer_create_wrapper) SYSCALL(sys_timer_settime,sys_timer_settime,sys32_timer_settime_wrapper) /* 255 */ SYSCALL(sys_timer_gettime,sys_timer_gettime,sys32_timer_gettime_wrapper)
@@ -272,7 +272,7 @@ SYSCALL(sys_clock_gettime,sys_clock_gettime,sys32_clock_gettime_wrapper) /* 260 SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper) SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper) NI_SYSCALL /* reserved for vserver */ -SYSCALL(s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper) +SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper) SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper) SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper) SYSCALL(sys_remap_file_pages,sys_remap_file_pages,sys32_remap_file_pages_wrapper)
@@ -322,7 +322,7 @@ NI_SYSCALL /* 310 sys_move_pages */ SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper) SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper) SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper) -SYSCALL(s390_fallocate,sys_fallocate,sys_fallocate_wrapper) +SYSCALL(sys_s390_fallocate,sys_fallocate,sys_fallocate_wrapper) SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */ SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper) NI_SYSCALL /* 317 old sys_timer_fd */
arch/sh/include/asm/syscalls_32.h +3 -3
@@ -36,9 +36,9 @@ asmlinkage int sys_sigreturn(unsigned long r4, unsigned long r5, asmlinkage int sys_rt_sigreturn(unsigned long r4, unsigned long r5,unsigned long r6,unsigned long r7,struct pt_regs __regs); -asmlinkage int sys_pipe(unsigned long r4, unsigned long r5, -unsigned long r6,unsigned long r7, -struct pt_regs __regs); +asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5, +unsigned long r6,unsigned long r7, +struct pt_regs __regs); asmlinkage ssize_t sys_pread_wrapper(unsigned int fd, char __user *buf,size_t count,long dummy,loff_t pos); asmlinkage ssize_t sys_pwrite_wrapper(unsigned int fd, const char __user *buf,
arch/sh/kernel/sys_sh32.c +1 -1
@@ -22,7 +22,7 @@* sys_pipe() is the normal C calling standard for creating * a pipe. It's not the way Unix traditionally does this, though. */ -asmlinkage int sys_pipe(unsigned long r4, unsigned long r5, +asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5,unsigned long r6,unsigned long r7,struct pt_regs __regs) {
arch/sh/kernel/syscalls_32.S +2 -2
@@ -58,7 +58,7 @@ ENTRY(sys_call_table) .long sys_mkdir .long sys_rmdir /* 40 */ .long sys_dup - .long sys_pipe + .long sys_sh_pipe .long sys_times .long sys_ni_syscall /* old prof syscall holder */ .long sys_brk /* 45 */
@@ -105,7 +105,7 @@ ENTRY(sys_call_table) .long sys_uselib .long sys_swapon .long sys_reboot - .long old_readdir + .long sys_old_readdir .long old_mmap /* 90 */ .long sys_munmap .long sys_truncate
arch/sh/kernel/syscalls_64.S +1 -1
@@ -109,7 +109,7 @@ sys_call_table: .long sys_uselib .long sys_swapon .long sys_reboot - .long old_readdir + .long sys_old_readdir .long old_mmap /* 90 */ .long sys_munmap .long sys_truncate
arch/sparc/kernel/entry.S +2 -2
@@ -1088,8 +1088,8 @@ sunos_execv: ld [%sp + STACKFRAME_SZ + PT_I0], %o0 .align 4 - .globl sys_pipe -sys_pipe: + .globl sys_sparc_pipe +sys_sparc_pipe: mov %o7, %l5 add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg call sparc_pipe
arch/sparc/kernel/systbls.S +2 -2
@@ -24,7 +24,7 @@ sys_call_table: /*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause /*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice /*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile -/*40*/ .long sys_newlstat, sys_dup, sys_pipe, sys_times, sys_getuid +/*40*/ .long sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_getuid /*45*/ .long sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16 /*50*/ .long sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, sys_ioctl /*55*/ .long sys_reboot, sys_mmap2, sys_symlink, sys_readlink, sys_execve
@@ -56,7 +56,7 @@ sys_call_table: /*185*/ .long sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname /*190*/ .long sys_init_module, sys_personality, sparc_remap_file_pages, sys_epoll_create, sys_epoll_ctl /*195*/ .long sys_epoll_wait, sys_ioprio_set, sys_getppid, sparc_sigaction, sys_sgetmask -/*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, old_readdir +/*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, sys_old_readdir /*205*/ .long sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64 /*210*/ .long sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo /*215*/ .long sys_ipc, sys_sigreturn, sys_clone, sys_ioprio_get, sys_adjtimex
arch/sparc64/kernel/syscalls.S +1 -1
@@ -20,7 +20,7 @@ execve_merge: add %sp, PTREGS_OFF, %o0 .align 32 -sys_pipe: +sys_sparc_pipe: ba,pt %xcc, sparc_pipe add %sp, PTREGS_OFF, %o0 sys_nis_syscall:
arch/sparc64/kernel/systbls.S +2 -2
@@ -26,7 +26,7 @@ sys_call_table32: /*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys_pause /*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile -/*40*/ .word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid +/*40*/ .word compat_sys_newlstat, sys_dup, sys_sparc_pipe, compat_sys_times, sys_getuid .word sys32_umount, sys_setgid16, sys_getgid16, sys32_signal, sys_geteuid16 /*50*/ .word sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl .word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve
@@ -100,7 +100,7 @@ sys_call_table: /*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall /*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64 -/*40*/ .word sys_newlstat, sys_dup, sys_pipe, sys_times, sys_nis_syscall +/*40*/ .word sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_nis_syscall .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid /*50*/ .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve
arch/x86/Kconfig +1 -1
@@ -569,7 +569,7 @@ config AMD_IOMMU # need this always selected by IOMMU for the VIA workaround config SWIOTLB - bool + def_bool y if X86_64 help Support for software bounce buffers used on x86-64 systems which don't have a hardware IOMMU (e.g. the current generation
arch/x86/kernel/cpu/addon_cpuid_features.c +8 -0
@@ -120,9 +120,17 @@ void __cpuinit detect_extended_topology(struct cpuinfo_x86 *c) c->cpu_core_id =phys_pkg_id (c->initial_apicid, ht_mask_width) & core_select_mask; c->phys_proc_id =phys_pkg_id (c->initial_apicid, core_plus_mask_width); +/* +* Reinit the apicid, now that we have extended initial_apicid. +*/ + c->apicid =phys_pkg_id (c->initial_apicid,0 );#else c->cpu_core_id =phys_pkg_id (ht_mask_width) & core_select_mask; c->phys_proc_id =phys_pkg_id (core_plus_mask_width); +/* +* Reinit the apicid, now that we have extended initial_apicid. +*/ + c->apicid =phys_pkg_id (0 );#endif c->x86_max_cores = (core_level_siblings / smp_num_siblings);
arch/x86/kernel/cpu/intel.c +7 -1
@@ -242,6 +242,13 @@ static void __cpuinit init_intel(struct cpuinfo_x86 *c)intel_workarounds (c); +/* +* Detect the extended topology information if available. This +* will reinitialise the initial_apicid which will be used +* in init_intel_cacheinfo() +*/ +detect_extended_topology (c); + l2 =init_intel_cacheinfo (c);if (c->cpuid_level >9 ) {unsigned eax =cpuid_eax (10 );
@@ -313,7 +320,6 @@ static void __cpuinit init_intel(struct cpuinfo_x86 *c)#endif -detect_extended_topology (c);if (!cpu_has (c,X86_FEATURE_XTOPOLOGY )) {/* * let's use the legacy cpuid vector 0x1 and 0x4 for topology
arch/x86/kernel/head64.c +1 -1
@@ -26,7 +26,7 @@#include <asm/bios_ebda.h> /* boot cpu pda */ -static struct x8664_pda _boot_cpu_pda__read_mostly ; +static struct x8664_pda _boot_cpu_pda;#ifdef CONFIG_SMP /*
arch/x86/kernel/head_64.S +1 -1
@@ -305,7 +305,7 @@ ENTRY(early_idt_handler) call dump_stack #ifdef CONFIG_KALLSYMS leaq early_idt_ripmsg(%rip),%rdi - movq 8(%rsp),%rsi # get rip again + movq 0(%rsp),%rsi # get rip again call __print_symbol #endif #endif /* EARLY_PRINTK */
arch/x86/kernel/syscall_table_32.S +1 -1
@@ -88,7 +88,7 @@ ENTRY(sys_call_table) .long sys_uselib .long sys_swapon .long sys_reboot - .long old_readdir + .long sys_old_readdir .long old_mmap /* 90 */ .long sys_munmap .long sys_truncate
arch/x86/kernel/tlb_uv.c +0 -9
@@ -586,7 +586,6 @@ static int __init uv_ptc_init(void)static struct bau_control *__init uv_table_bases_init (int blade,int node) {int i; -int *ip;struct bau_msg_status *msp;struct bau_control *bau_tabp;
@@ -603,13 +602,6 @@ static struct bau_control * __init uv_table_bases_init(int blade, int node)bau_cpubits_clear (&msp->seen_by, (int )uv_blade_nr_possible_cpus (blade)); - bau_tabp->watching = -kmalloc_node (sizeof (int ) *DEST_NUM_RESOURCES ,GFP_KERNEL , node); -BUG_ON (!bau_tabp->watching); - -for (i =0 , ip = bau_tabp->watching; i <DEST_Q_SIZE ; i++, ip++) - *ip =0 ; - uv_bau_table_bases[blade] = bau_tabp;return bau_tabp;
@@ -632,7 +624,6 @@ uv_table_bases_finish(int blade, int node, int cur_cpu, bcp->bau_msg_head = bau_tablesp->va_queue_first; bcp->va_queue_first = bau_tablesp->va_queue_first; bcp->va_queue_last = bau_tablesp->va_queue_last; - bcp->watching = bau_tablesp->watching; bcp->msg_statuses = bau_tablesp->msg_statuses; bcp->descriptor_base = adp; }
arch/x86/mm/fault.c +1 -1
@@ -533,7 +533,7 @@ static int vmalloc_fault(unsigned long address)happen within a race in page table update. In the later case just flush. */ - pgd =pgd_offset (current->mm ?: &init_mm, address); + pgd =pgd_offset (current->active_mm, address); pgd_ref =pgd_offset_k (address);if (pgd_none (*pgd_ref))return -1 ;
drivers/dma/ioat_dma.c +7 -6
@@ -1341,12 +1341,11 @@ static void ioat_dma_start_null_desc(struct ioat_dma_chan *ioat_chan)*/ #define IOAT_TEST_SIZE 2000 -DECLARE_COMPLETION (test_completion);static void ioat_dma_test_callback (void *dma_async_param) { -printk (KERN_ERR "ioatdma: ioat_dma_test_callback(%p)\n" , - dma_async_param); -complete (&test_completion); +struct completion *cmp = dma_async_param; + +complete (cmp); }/**
@@ -1363,6 +1362,7 @@ static int ioat_dma_self_test(struct ioatdma_device *device)dma_addr_t dma_dest, dma_src;dma_cookie_t cookie;int err =0 ; +struct completion cmp; src =kzalloc (sizeof (u8) *IOAT_TEST_SIZE ,GFP_KERNEL );if (!src)
@@ -1402,8 +1402,9 @@ static int ioat_dma_self_test(struct ioatdma_device *device) }async_tx_ack (tx); +init_completion (&cmp); tx->callback = ioat_dma_test_callback; - tx->callback_param = (void *)0x8086 ; + tx->callback_param = &cmp; cookie = tx->tx_submit (tx);if (cookie <0 ) { dev_err(&device->pdev->dev,
@@ -1413,7 +1414,7 @@ static int ioat_dma_self_test(struct ioatdma_device *device) } device->common.device_issue_pending (dma_chan); -wait_for_completion_timeout (&test_completion,msecs_to_jiffies (3000 )); +wait_for_completion_timeout (&cmp,msecs_to_jiffies (3000 ));if (device->common.device_is_tx_complete (dma_chan, cookie,NULL ,NULL ) !=DMA_SUCCESS ) {
drivers/hid/hid-sony.c +1 -1
@@ -102,7 +102,7 @@ static int sony_probe(struct hid_device *hdev, const struct hid_device_id *id) } ret =sony_set_operational (hdev); -if (ret) +if (ret <0 ) goto err_stop;return 0 ;
drivers/ide/tx4938ide.c +2 -2
@@ -181,7 +181,7 @@ static void tx4938ide_input_data_swap(ide_drive_t *drive, struct request *rq,while (count--) *ptr++ =cpu_to_le16 (__raw_readw ((void __iomem *)port)); -__ide_flush_dcache_range ((unsigned long )buf, count *2 ); +__ide_flush_dcache_range ((unsigned long )buf,roundup (len,2 )); } static void tx4938ide_output_data_swap(ide_drive_t *drive, struct request *rq,
@@ -195,7 +195,7 @@ static void tx4938ide_output_data_swap(ide_drive_t *drive, struct request *rq,__raw_writew (le16_to_cpu (*ptr), (void __iomem *)port); ptr++; } -__ide_flush_dcache_range ((unsigned long )buf, count *2 ); +__ide_flush_dcache_range ((unsigned long )buf,roundup (len,2 )); }static const struct ide_tp_ops tx4938ide_tp_ops = {
drivers/ide/tx4939ide.c +8 -2
@@ -259,6 +259,12 @@ static int tx4939ide_build_dmatable(ide_drive_t *drive, struct request *rq) bcount =0x10000 - (cur_addr &0xffff );if (bcount > cur_len) bcount = cur_len; +/* +* This workaround for zero count seems required. +* (standard ide_build_dmatable do it too) +*/ +if ((bcount &0xffff ) ==0x0000 ) + bcount =0x8000 ; *table++ = bcount &0xffff ; *table++ = cur_addr; cur_addr += bcount;
@@ -558,7 +564,7 @@ static void tx4939ide_input_data_swap(ide_drive_t *drive, struct request *rq,while (count--) *ptr++ =cpu_to_le16 (__raw_readw ((void __iomem *)port)); -__ide_flush_dcache_range ((unsigned long )buf, count *2 ); +__ide_flush_dcache_range ((unsigned long )buf,roundup (len,2 )); } static void tx4939ide_output_data_swap(ide_drive_t *drive, struct request *rq,
@@ -572,7 +578,7 @@ static void tx4939ide_output_data_swap(ide_drive_t *drive, struct request *rq,__raw_writew (le16_to_cpu (*ptr), (void __iomem *)port); ptr++; } -__ide_flush_dcache_range ((unsigned long )buf, count *2 ); +__ide_flush_dcache_range ((unsigned long )buf,roundup (len,2 )); }static const struct ide_tp_ops tx4939ide_tp_ops = {
drivers/md/bitmap.c +5 -3
@@ -964,9 +964,11 @@ static int bitmap_init_from_disk(struct bitmap *bitmap, sector_t start)*/ page = bitmap->sb_page; offset =sizeof (bitmap_super_t); -read_sb_page (bitmap->mddev, bitmap->offset, - page, - index, count); +if (!file) +read_sb_page (bitmap->mddev, + bitmap->offset, + page, + index, count); }else if (file) { page =read_page (file, index, bitmap, count); offset =0 ;
drivers/md/dm-log.c +5 -0
@@ -467,6 +467,7 @@ static int create_log_context(struct dm_dirty_log *log, struct dm_target *ti, lc->disk_header =vmalloc (buf_size);if (!lc->disk_header) {DMWARN ("couldn't allocate disk log buffer" ); +dm_io_client_destroy (lc->io_req.client);kfree (lc);return -ENOMEM ; }
@@ -482,6 +483,8 @@ static int create_log_context(struct dm_dirty_log *log, struct dm_target *ti,DMWARN ("couldn't allocate sync bitset" );if (!dev)vfree (lc->clean_bits); +else +dm_io_client_destroy (lc->io_req.client);vfree (lc->disk_header);kfree (lc);return -ENOMEM ;
@@ -495,6 +498,8 @@ static int create_log_context(struct dm_dirty_log *log, struct dm_target *ti,vfree (lc->sync_bits);if (!dev)vfree (lc->clean_bits); +else +dm_io_client_destroy (lc->io_req.client);vfree (lc->disk_header);kfree (lc);return -ENOMEM ;
drivers/md/dm-raid1.c +3 -3
@@ -197,9 +197,6 @@ static void fail_mirror(struct mirror *m, enum dm_raid1_error error_type)struct mirror_set *ms = m->ms;struct mirror *new; -if (!errors_handled (ms)) -return ; -/* * error_count is used for nothing more than a * simple way to tell if a device has encountered
@@ -210,6 +207,9 @@ static void fail_mirror(struct mirror *m, enum dm_raid1_error error_type)if (test_and_set_bit (error_type, &m->error_type))return ; +if (!errors_handled (ms)) +return ; +if (m !=get_default_mirror (ms)) goto out;
drivers/net/wireless/ath5k/phy.c +1 -3
@@ -2195,9 +2195,7 @@ static int ath5k_hw_rf5110_calibrate(struct ath5k_hw *ah,return ret; } - ret =ath5k_hw_noise_floor_calibration (ah, channel->center_freq); -if (ret) -return ret; +ath5k_hw_noise_floor_calibration (ah, channel->center_freq);/* * Re-enable RX/TX and beacons
drivers/net/wireless/ath5k/reset.c +1 -3
@@ -842,9 +842,7 @@ int ath5k_hw_reset(struct ath5k_hw *ah, enum nl80211_iftype op_mode,* * XXX: Find an interval that's OK for all cards... */ - ret =ath5k_hw_noise_floor_calibration (ah, channel->center_freq); -if (ret) -return ret; +ath5k_hw_noise_floor_calibration (ah, channel->center_freq);/* * Reset queues and start beacon timers at the end of the reset routine
drivers/net/wireless/ath9k/recv.c +2 -3
@@ -627,9 +627,8 @@ u32 ath_calcrxfilter(struct ath_softc *sc) rfilt &= ~ATH9K_RX_FILTER_UCAST ; } -if (((sc->sc_ah->ah_opmode ==ATH9K_M_STA ) && - (sc->rx_filter &FIF_BCN_PRBRESP_PROMISC )) || - (sc->sc_ah->ah_opmode ==ATH9K_M_IBSS )) +if (sc->sc_ah->ah_opmode ==ATH9K_M_STA || + sc->sc_ah->ah_opmode ==ATH9K_M_IBSS ) rfilt |=ATH9K_RX_FILTER_BEACON ;/* If in HOSTAP mode, want to enable reception of PSPOLL frames
drivers/net/wireless/iwlwifi/iwl-agn.c +1 -11
@@ -1334,16 +1334,6 @@ static void iwl_setup_rx_handlers(struct iwl_priv *priv) priv->cfg->ops->lib->rx_handler_setup (priv); } -/* -* this should be called while priv->lock is locked -*/ -static void __iwl_rx_replenish (struct iwl_priv *priv) -{ -iwl_rx_allocate (priv); -iwl_rx_queue_restock (priv); -} - -/** * iwl_rx_handle - Main entry function for receiving responses from uCode *
@@ -1451,7 +1441,7 @@ void iwl_rx_handle(struct iwl_priv *priv) count++;if (count >=8 ) { priv->rxq.read = i; -__iwl_rx_replenish (priv); +iwl_rx_queue_restock (priv); count =0 ; } }
drivers/net/wireless/iwlwifi/iwl-rx.c +19 -10
@@ -245,25 +245,31 @@ void iwl_rx_allocate(struct iwl_priv *priv)struct list_head *element;struct iwl_rx_mem_buffer *rxb;unsigned long flags; -spin_lock_irqsave (&rxq->lock, flags); -while (!list_empty (&rxq->rx_used)) { + +while (1 ) { +spin_lock_irqsave (&rxq->lock, flags); + +if (list_empty (&rxq->rx_used)) { +spin_unlock_irqrestore (&rxq->lock, flags); +return ; + } element = rxq->rx_used.next; rxb = list_entry(element, struct iwl_rx_mem_buffer, list); +list_del (element); + +spin_unlock_irqrestore (&rxq->lock, flags);/* Alloc a new receive buffer */ rxb->skb =alloc_skb (priv->hw_params.rx_buf_size +256 , - __GFP_NOWARN |GFP_ATOMIC ); +GFP_KERNEL );if (!rxb->skb) { -if (net_ratelimit ()) - printk(KERN_CRIT DRV_NAME -": Can not allocate SKB buffers\n" ); + printk(KERN_CRIT DRV_NAME + "Can not allocate SKB buffers\n");/* We don't reschedule replenish work here -- we will * call the restock method and if it still needs * more buffers it will schedule replenish */ break ; } - priv->alloc_rxb_skb++; -list_del (element);/* Get physical address of RB/SKB */ rxb->real_dma_addr = pci_map_single(
@@ -277,12 +283,15 @@ void iwl_rx_allocate(struct iwl_priv *priv) rxb->aligned_dma_addr =ALIGN (rxb->real_dma_addr,256 );skb_reserve (rxb->skb, rxb->aligned_dma_addr - rxb->real_dma_addr); +spin_lock_irqsave (&rxq->lock, flags); +list_add_tail (&rxb->list, &rxq->rx_free); rxq->free_count++; + priv->alloc_rxb_skb++; + +spin_unlock_irqrestore (&rxq->lock, flags); } -spin_unlock_irqrestore (&rxq->lock, flags); } -EXPORT_SYMBOL (iwl_rx_allocate);void iwl_rx_replenish (struct iwl_priv *priv) {
drivers/pci/syscall.c +4 -8
@@ -14,10 +14,8 @@#include <asm/uaccess.h> #include "pci.h" -asmlinkage long -sys_pciconfig_read (unsigned long bus,unsigned long dfn, -unsigned long off,unsigned long len, -void __user *buf) +SYSCALL_DEFINE5(pciconfig_read, unsigned long, bus, unsigned long, dfn, + unsigned long, off, unsigned long, len, void __user *, buf) {struct pci_dev *dev;u8 byte;
@@ -86,10 +84,8 @@ error:return err; } -asmlinkage long -sys_pciconfig_write (unsigned long bus,unsigned long dfn, -unsigned long off,unsigned long len, -void __user *buf) +SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn, + unsigned long, off, unsigned long, len, void __user *, buf) {struct pci_dev *dev;u8 byte;
drivers/scsi/eata.c +12 -3
@@ -1626,8 +1626,15 @@ static void map_dma(unsigned int i, struct hostdata *ha) cpp->sense_len =SCSI_SENSE_BUFFERSIZE ; - count =scsi_dma_map (SCpnt); -BUG_ON (count <0 ); +if (!scsi_sg_count (SCpnt)) { + cpp->data_len =0 ; +return ; + } + + count =pci_map_sg (ha->pdev,scsi_sglist (SCpnt),scsi_sg_count (SCpnt), + pci_dir); +BUG_ON (!count); +scsi_for_each_sg (SCpnt, sg, count, k) { cpp->sglist[k].address =H2DEV (sg_dma_address (sg)); cpp->sglist[k].num_bytes =H2DEV (sg_dma_len (sg));
@@ -1655,7 +1662,9 @@ static void unmap_dma(unsigned int i, struct hostdata *ha)pci_unmap_single (ha->pdev,DEV2H (cpp->sense_addr),DEV2H (cpp->sense_len),PCI_DMA_FROMDEVICE ); -scsi_dma_unmap (SCpnt); +if (scsi_sg_count (SCpnt)) +pci_unmap_sg (ha->pdev,scsi_sglist (SCpnt),scsi_sg_count (SCpnt), + pci_dir);if (!DEV2H (cpp->data_len)) pci_dir =PCI_DMA_BIDIRECTIONAL ;
drivers/scsi/ibmvscsi/ibmvfc.c +17 -8
@@ -566,7 +566,7 @@ static void ibmvfc_init_host(struct ibmvfc_host *vhost, int relogin)struct ibmvfc_target *tgt;if (vhost->action ==IBMVFC_HOST_ACTION_INIT_WAIT ) { -if (++vhost->init_retries >IBMVFC_MAX_INIT_RETRIES ) { +if (++vhost->init_retries >IBMVFC_MAX_HOST_INIT_RETRIES ) {dev_err (vhost->dev,"Host initialization retries exceeded. Taking adapter offline\n" );ibmvfc_link_down (vhost,IBMVFC_HOST_OFFLINE );
@@ -847,11 +847,12 @@ static void ibmvfc_reset_host(struct ibmvfc_host *vhost)static void ibmvfc_retry_host_init (struct ibmvfc_host *vhost) {if (vhost->action ==IBMVFC_HOST_ACTION_INIT_WAIT ) { -if (++vhost->init_retries >IBMVFC_MAX_INIT_RETRIES ) { + vhost->delay_init =1 ; +if (++vhost->init_retries >IBMVFC_MAX_HOST_INIT_RETRIES ) {dev_err (vhost->dev,"Host initialization retries exceeded. Taking adapter offline\n" );ibmvfc_link_down (vhost,IBMVFC_HOST_OFFLINE ); - }else if (vhost->init_retries ==IBMVFC_MAX_INIT_RETRIES ) + }else if (vhost->init_retries ==IBMVFC_MAX_HOST_INIT_RETRIES )__ibmvfc_reset_host (vhost);else ibmvfc_set_host_action (vhost,IBMVFC_HOST_ACTION_INIT );
@@ -2089,15 +2090,17 @@ static void ibmvfc_handle_async(struct ibmvfc_async_crq *crq,case IBMVFC_AE_LINK_UP :case IBMVFC_AE_RESUME : vhost->events_to_log |=IBMVFC_AE_LINKUP ; -ibmvfc_init_host (vhost,1 ); + vhost->delay_init =1 ; +__ibmvfc_reset_host (vhost);break ;case IBMVFC_AE_SCN_FABRIC : +case IBMVFC_AE_SCN_DOMAIN : vhost->events_to_log |=IBMVFC_AE_RSCN ; -ibmvfc_init_host (vhost,1 ); + vhost->delay_init =1 ; +__ibmvfc_reset_host (vhost);break ;case IBMVFC_AE_SCN_NPORT :case IBMVFC_AE_SCN_GROUP : -case IBMVFC_AE_SCN_DOMAIN : vhost->events_to_log |=IBMVFC_AE_RSCN ;case IBMVFC_AE_ELS_LOGO :case IBMVFC_AE_ELS_PRLO :
@@ -2669,7 +2672,7 @@ static void ibmvfc_init_tgt(struct ibmvfc_target *tgt,static void ibmvfc_retry_tgt_init (struct ibmvfc_target *tgt,void (*job_step) (struct ibmvfc_target *)) { -if (++tgt->init_retries >IBMVFC_MAX_INIT_RETRIES ) { +if (++tgt->init_retries >IBMVFC_MAX_TGT_INIT_RETRIES ) {ibmvfc_set_tgt_action (tgt,IBMVFC_TGT_ACTION_DEL_RPORT );wake_up (&tgt->vhost->work_wait_q); }else
@@ -3519,7 +3522,13 @@ static void ibmvfc_do_work(struct ibmvfc_host *vhost)break ;case IBMVFC_HOST_ACTION_INIT :BUG_ON (vhost->state !=IBMVFC_INITIALIZING ); - vhost->job_step (vhost); +if (vhost->delay_init) { + vhost->delay_init =0 ; +spin_unlock_irqrestore (vhost->host->host_lock, flags); +ssleep (15 ); +return ; + }else + vhost->job_step (vhost);break ;case IBMVFC_HOST_ACTION_QUERY :list_for_each_entry (tgt, &vhost->targets, queue)
drivers/scsi/ibmvscsi/ibmvfc.h +4 -2
@@ -33,7 +33,7 @@#define IBMVFC_DRIVER_DATE "(August 14, 2008)"#define IBMVFC_DEFAULT_TIMEOUT 15 -#define IBMVFC_INIT_TIMEOUT 30 +#define IBMVFC_INIT_TIMEOUT 120#define IBMVFC_MAX_REQUESTS_DEFAULT 100#define IBMVFC_DEBUG 0
@@ -43,7 +43,8 @@#define IBMVFC_MAX_DISC_THREADS 4#define IBMVFC_TGT_MEMPOOL_SZ 64#define IBMVFC_MAX_CMDS_PER_LUN 64 -#define IBMVFC_MAX_INIT_RETRIES 3 +#define IBMVFC_MAX_HOST_INIT_RETRIES 6 +#define IBMVFC_MAX_TGT_INIT_RETRIES 3#define IBMVFC_DEV_LOSS_TMO (5 * 60)#define IBMVFC_DEFAULT_LOG_LEVEL 2#define IBMVFC_MAX_CDB_LEN 16
@@ -671,6 +672,7 @@ struct ibmvfc_host {int discovery_threads;int client_migrated;int reinit; +int delay_init;int events_to_log;#define IBMVFC_AE_LINKUP 0x0001#define IBMVFC_AE_LINKDOWN 0x0002
drivers/scsi/mvsas.c +1 -1
@@ -2959,7 +2959,7 @@ static int __devinit mvs_hw_init(struct mvs_info *mvi)/* enable auto port detection */ mw32 (GBL_PORT_TYPE ,MODE_AUTO_DET_EN ); -msleep (100 ); +msleep (1100 );/* init and reset phys */ for (i =0 ; i < mvi->chip->n_phy; i++) {u32 lo =be32_to_cpu (*(u32 *)&mvi->sas_addr[4 ]);
drivers/scsi/pcmcia/aha152x_stub.c +1 -1
@@ -114,7 +114,7 @@ static int aha152x_probe(struct pcmcia_device *link) link->io.NumPorts1 =0x20 ; link->io.Attributes1 =IO_DATA_PATH_WIDTH_AUTO ; link->io.IOAddrLines =10 ; - link->irq.Attributes =IRQ_TYPE_EXCLUSIVE ; + link->irq.Attributes =IRQ_TYPE_DYNAMIC_SHARING ; link->irq.IRQInfo1 =IRQ_LEVEL_ID ; link->conf.Attributes =CONF_ENABLE_IRQ ; link->conf.IntType =INT_MEMORY_AND_IO ;
drivers/usb/host/isp1760-if.c +65 -48
177 lines not on this page · raw message
drivers/usb/misc/emi26.c +1 -1
@@ -160,7 +160,7 @@ static int emi26_load_firmware (struct usb_device *dev)err ("%s - error loading firmware: error = %d" , __func__, err); goto wraperr; } - }while (i >0 ); + }while (rec);/* Assert reset (stop the CPU in the EMI) */ err =emi26_set_reset (dev,1 );
drivers/usb/storage/unusual_devs.h +22 -1
@@ -260,6 +260,13 @@ UNUSUAL_DEV( 0x0421, 0x04b9, 0x0500, 0x0551, US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_FIX_CAPACITY ), +/* Reported by Paulo Fessel <[email protected]> */ +UNUSUAL_DEV (0x0421 ,0x04bd ,0x0000 ,0x9999 , +"Nokia" , +"5200" , +US_SC_DEVICE ,US_PR_DEVICE ,NULL , +US_FL_FIX_CAPACITY ), +/* Reported by Richard Nauber <[email protected]> */ UNUSUAL_DEV( 0x0421, 0x04fa, 0x0550, 0x0660, "Nokia",
@@ -1040,7 +1047,7 @@ UNUSUAL_DEV( 0x067b, 0x2507, 0x0100, 0x0100, US_FL_FIX_CAPACITY | US_FL_GO_SLOW ),/* Reported by Alex Butcher <[email protected]> */ -UNUSUAL_DEV( 0x067b, 0x3507, 0x0001, 0x0001, +UNUSUAL_DEV( 0x067b, 0x3507, 0x0001, 0x0101, "Prolific Technology Inc.", "ATAPI-6 Bridge Controller", US_SC_DEVICE, US_PR_DEVICE, NULL,
@@ -1320,6 +1327,13 @@ UNUSUAL_DEV( 0x0840, 0x0082, 0x0001, 0x0001, US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_FIX_CAPACITY), +/* Reported and patched by Nguyen Anh Quynh <[email protected]> */ +UNUSUAL_DEV (0x0840 ,0x0084 ,0x0001 ,0x0001 , +"Argosy" , +"Storage" , +US_SC_DEVICE ,US_PR_DEVICE ,NULL , + US_FL_FIX_CAPACITY), +/* Entry and supporting patch by Theodore Kilgore <[email protected]>. * Flag will support Bulk devices which use a standards-violating 32-byte * Command Block Wrapper. Here, the "DC2MEGA" cameras (several brands) with
@@ -1425,6 +1439,13 @@ UNUSUAL_DEV( 0x0a17, 0x006, 0x0000, 0xffff, US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_FIX_INQUIRY ), +/* Reported by Jaak Ristioja <[email protected]> */ +UNUSUAL_DEV (0x0a17 ,0x006e ,0x0100 ,0x0100 , +"Pentax" , +"K10D" , +US_SC_DEVICE ,US_PR_DEVICE ,NULL , +US_FL_FIX_CAPACITY ), +/* These are virtual windows driver CDs, which the zd1211rw driver * automatically converts into WLAN devices. */ UNUSUAL_DEV( 0x0ace, 0x2011, 0x0101, 0x0101,
fs/affs/file.c +1 -1
@@ -628,7 +628,7 @@ static int affs_write_begin_ofs(struct file *file, struct address_space *mapping } index = pos >>PAGE_CACHE_SHIFT ; - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page)return -ENOMEM ; *pagep = page;
fs/afs/write.c +1 -1
@@ -144,7 +144,7 @@ int afs_write_begin(struct file *file, struct address_space *mapping, candidate->state =AFS_WBACK_PENDING ;init_waitqueue_head (&candidate->waitq); - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page) {kfree (candidate);return -ENOMEM ;
fs/aio.c +11 -11
@@ -1258,7 +1258,7 @@ static void io_destroy(struct kioctx *ioctx)* pointer is passed for ctxp. Will fail with -ENOSYS if not * implemented. */ -asmlinkage long sys_io_setup (unsigned nr_events,aio_context_t __user *ctxp) +SYSCALL_DEFINE2(io_setup, unsigned, nr_events, aio_context_t __user *, ctxp) {struct kioctx *ioctx =NULL ;unsigned long ctx;
@@ -1296,7 +1296,7 @@ out:* implemented. May fail with -EFAULT if the context pointed to * is invalid. */ -asmlinkage long sys_io_destroy (aio_context_t ctx) +SYSCALL_DEFINE1(io_destroy, aio_context_t, ctx) {struct kioctx *ioctx =lookup_ioctx (ctx);if (likely (NULL != ioctx)) {
@@ -1650,8 +1650,8 @@ out_put_req:* are available to queue any iocbs. Will return 0 if nr is 0. Will * fail with -ENOSYS if not implemented. */ -asmlinkage long sys_io_submit (aio_context_t ctx_id,long nr, -struct iocb __user *__user *iocbpp) +SYSCALL_DEFINE3 (io_submit, aio_context_t, ctx_id, long, nr, + struct iocb __user * __user *, iocbpp) {struct kioctx *ctx;long ret =0 ;
@@ -1725,8 +1725,8 @@ static struct kiocb *lookup_kiocb(struct kioctx *ctx, struct iocb __user *iocb,* invalid. May fail with -EAGAIN if the iocb specified was not * cancelled. Will fail with -ENOSYS if not implemented. */ -asmlinkage long sys_io_cancel (aio_context_t ctx_id,struct iocb __user *iocb, -struct io_event __user *result) +SYSCALL_DEFINE3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb, + struct io_event __user *, result) {int (*cancel)(struct kiocb *iocb,struct io_event *res);struct kioctx *ctx;
@@ -1787,11 +1787,11 @@ asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb,* will be updated if not NULL and the operation blocks. Will fail * with -ENOSYS if not implemented. */ -asmlinkage long sys_io_getevents (aio_context_t ctx_id, -long min_nr, -long nr, -struct io_event __user *events, -struct timespec __user *timeout) +SYSCALL_DEFINE5 (io_getevents, aio_context_t, ctx_id, + long, min_nr, + long, nr, + struct io_event __user *, events, + struct timespec __user *, timeout) {struct kioctx *ioctx =lookup_ioctx (ctx_id);long ret = -EINVAL ;
fs/buffer.c +3 -3
@@ -1988,7 +1988,7 @@ int block_write_begin(struct file *file, struct address_space *mapping, page = *pagep;if (page ==NULL ) { ownpage =1 ; - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page) { status = -ENOMEM ; goto out;
@@ -2494,7 +2494,7 @@ int nobh_write_begin(struct file *file, struct address_space *mapping, from = pos & (PAGE_CACHE_SIZE -1 ); to = from + len; - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page)return -ENOMEM ; *pagep = page;
@@ -3177,7 +3177,7 @@ void block_sync_page(struct page *page)* Use of bdflush() is deprecated and will be removed in a future kernel. * The `pdflush' kernel threads fully replace bdflush daemons and this call. */ -asmlinkage long sys_bdflush (int func,long data) +SYSCALL_DEFINE2(bdflush, int, func, long, data) {static int msg_count;
fs/cifs/cifs_dfs_ref.c +36 -12
98 lines not on this page · raw message
fs/cifs/file.c +1 -1
@@ -2073,7 +2073,7 @@ static int cifs_write_begin(struct file *file, struct address_space *mapping,cFYI (1 , ("write_begin from %lld len %d" , (long long )pos, len)); - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page) { rc = -ENOMEM ; goto out;
fs/compat.c +3 -3
@@ -1697,7 +1697,7 @@ asmlinkage long compat_sys_select(int n, compat_ulong_t __user *inp, }#ifdef HAVE_SET_RESTORE_SIGMASK -asmlinkage long compat_sys_pselect7 (int n,compat_ulong_t __user *inp, +static long do_compat_pselect (int n,compat_ulong_t __user *inp,compat_ulong_t __user *outp,compat_ulong_t __user *exp,struct compat_timespec __user *tsp,compat_sigset_t __user *sigmask,compat_size_t sigsetsize)
@@ -1763,8 +1763,8 @@ asmlinkage long compat_sys_pselect6(int n, compat_ulong_t __user *inp, (compat_size_t __user *)(sig+sizeof(up))))return -EFAULT ; } -return compat_sys_pselect7 (n, inp, outp, exp, tsp,compat_ptr (up), - sigsetsize); +return do_compat_pselect (n, inp, outp, exp, tsp,compat_ptr (up), + sigsetsize); } asmlinkage long compat_sys_ppoll(struct pollfd __user *ufds,
fs/dcache.c +4 -3
@@ -1620,8 +1620,11 @@ static void switch_names(struct dentry *dentry, struct dentry *target)*/ memcpy (dentry->d_iname, target->d_name.name, target->d_name.len +1 ); + dentry->d_name.len = target->d_name.len; +return ; } } +do_switch (dentry->d_name.len, target->d_name.len); }/*
@@ -1681,7 +1684,6 @@ already_unhashed:/* Switch the names.. */ switch_names (dentry, target); -do_switch (dentry->d_name.len, target->d_name.len);do_switch (dentry->d_name.hash, target->d_name.hash);/* ... and switch the parents */
@@ -1791,7 +1793,6 @@ static void __d_materialise_dentry(struct dentry *dentry, struct dentry *anon)struct dentry *dparent, *aparent;switch_names (dentry, anon); -do_switch (dentry->d_name.len, anon->d_name.len);do_switch (dentry->d_name.hash, anon->d_name.hash); dparent = dentry->d_parent;
@@ -2095,7 +2096,7 @@ Elong:* return NULL; * } */ -asmlinkage long sys_getcwd (char __user *buf,unsigned long size) +SYSCALL_DEFINE2(getcwd, char __user *, buf, unsigned long, size) {int error;struct path pwd, root;
fs/dcookies.c +8 -2
@@ -140,7 +140,7 @@ out:/* And here is where the userspace process can look up the cookie value * to retrieve the path. */ -asmlinkage long sys_lookup_dcookie (u64 cookie64,char __user * buf,size_t len) +SYSCALL_DEFINE (lookup_dcookie)(u64 cookie64,char __user * buf,size_t len) {unsigned long cookie = (unsigned long )cookie64;int err = -EINVAL ;
@@ -193,7 +193,13 @@ out:mutex_unlock (&dcookie_mutex);return err; } - +#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS +asmlinkage long SyS_lookup_dcookie (u64 cookie64,long buf,long len) +{ +return SYSC_lookup_dcookie (cookie64, (char __user *) buf, (size_t ) len); +} +SYSCALL_ALIAS (sys_lookup_dcookie, SyS_lookup_dcookie); +#endif static int dcookie_init (void ) {
fs/ecryptfs/inode.c +2 -1
@@ -673,10 +673,11 @@ static void *ecryptfs_follow_link(struct dentry *dentry, struct nameidata *nd)ecryptfs_printk (KERN_DEBUG ,"Calling readlink w/ " "dentry->d_name.name = [%s]\n" , dentry->d_name.name); rc = dentry->d_inode->i_op->readlink (dentry, (char __user *)buf, len); - buf[rc] ='\0' ;set_fs (old_fs);if (rc <0 ) goto out_free; +else + buf[rc] ='\0' ; rc =0 ;nd_set_link (nd, buf); goto out;
fs/ecryptfs/mmap.c +1 -1
@@ -288,7 +288,7 @@ static int ecryptfs_write_begin(struct file *file,loff_t prev_page_end_size;int rc =0 ; - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page)return -ENOMEM ; *pagep = page;
fs/eventfd.c +2 -3
@@ -198,7 +198,7 @@ struct file *eventfd_fget(int fd)return file; } -asmlinkage long sys_eventfd2 (unsigned int count,int flags) +SYSCALL_DEFINE2(eventfd2, unsigned int, count, int, flags) {int fd;struct eventfd_ctx *ctx;
@@ -228,8 +228,7 @@ asmlinkage long sys_eventfd2(unsigned int count, int flags)return fd; } -asmlinkage long sys_eventfd (unsigned int count) +SYSCALL_DEFINE1(eventfd, unsigned int, count) {return sys_eventfd2 (count,0 ); } -
fs/eventpoll.c +9 -9
@@ -1110,7 +1110,7 @@ retry:/* * Open an eventpoll file descriptor. */ -asmlinkage long sys_epoll_create1 (int flags) +SYSCALL_DEFINE1(epoll_create1, int, flags) {int error, fd =-1 ;struct eventpoll *ep;
@@ -1150,7 +1150,7 @@ error_return:return fd; } -asmlinkage long sys_epoll_create (int size) +SYSCALL_DEFINE1(epoll_create, int, size) {if (size <0 )return -EINVAL ;
@@ -1163,8 +1163,8 @@ asmlinkage long sys_epoll_create(int size)* the eventpoll file that enables the insertion/removal/change of * file descriptors inside the interest set. */ -asmlinkage long sys_epoll_ctl (int epfd,int op,int fd, -struct epoll_event __user *event) +SYSCALL_DEFINE4 (epoll_ctl, int, epfd, int, op, int, fd, + struct epoll_event __user *, event) {int error;struct file *file, *tfile;
@@ -1261,8 +1261,8 @@ error_return:* 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 __user *events, -int maxevents,int timeout) +SYSCALL_DEFINE4(epoll_wait, int, epfd, struct epoll_event __user *, events, + int, maxevents, int, timeout) {int error;struct file *file;
@@ -1319,9 +1319,9 @@ error_return:* Implement the event wait interface for the eventpoll file. It is the kernel * part of the user space epoll_pwait(2). */ -asmlinkage long sys_epoll_pwait (int epfd,struct epoll_event __user *events, -int maxevents,int timeout,const sigset_t __user *sigmask, -size_t sigsetsize) +SYSCALL_DEFINE6(epoll_pwait, int, epfd, struct epoll_event __user *, events, + int, maxevents, int, timeout, const sigset_t __user *, sigmask, + size_t, sigsetsize) {int error;sigset_t ksigmask, sigsaved;
fs/exec.c +1 -1
@@ -102,7 +102,7 @@ static inline void put_binfmt(struct linux_binfmt * fmt)* * Also note that we take the address to load from from the file itself. */ -asmlinkage long sys_uselib (const char __user * library) +SYSCALL_DEFINE1(uselib, const char __user *, library) {struct file *file;struct nameidata nd;
fs/ext3/inode.c +1 -1
@@ -1160,7 +1160,7 @@ static int ext3_write_begin(struct file *file, struct address_space *mapping, to = from + len; retry: - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page)return -ENOMEM ; *pagep = page;
fs/ext3/namei.c +1 -2
@@ -2170,8 +2170,7 @@ retry:* We have a transaction open. All is sweetness. It also sets * i_size in generic_commit_write(). */ - err =__page_symlink (inode, symname, l, -mapping_gfp_mask (inode->i_mapping) & ~__GFP_FS); + err =__page_symlink (inode, symname, l,1 );if (err) {drop_nlink (inode);ext3_mark_inode_dirty (handle, inode);
fs/ext4/inode.c +2 -2
@@ -1345,7 +1345,7 @@ retry: goto out; } - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page) {ext4_journal_stop (handle); ret = -ENOMEM ;
@@ -2549,7 +2549,7 @@ retry: goto out; } - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page) {ext4_journal_stop (handle); ret = -ENOMEM ;
fs/ext4/namei.c +1 -2
@@ -2208,8 +2208,7 @@ retry:* We have a transaction open. All is sweetness. It also sets * i_size in generic_commit_write(). */ - err =__page_symlink (inode, symname, l, -mapping_gfp_mask (inode->i_mapping) & ~__GFP_FS); + err =__page_symlink (inode, symname, l,1 );if (err) {clear_nlink (inode);ext4_mark_inode_dirty (handle, inode);
fs/fcntl.c +6 -5
@@ -50,7 +50,7 @@ static int get_close_on_exec(unsigned int fd)return res; } -asmlinkage long sys_dup3 (unsigned int oldfd,unsigned int newfd,int flags) +SYSCALL_DEFINE3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags) {int err = -EBADF ;struct file * file, *tofree;
@@ -113,7 +113,7 @@ out_unlock:return err; } -asmlinkage long sys_dup2 (unsigned int oldfd,unsigned int newfd) +SYSCALL_DEFINE2(dup2, unsigned int, oldfd, unsigned int, newfd) {if (unlikely (newfd == oldfd)) {/* corner case */ struct files_struct *files = current->files;
@@ -126,7 +126,7 @@ asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd)return sys_dup3 (oldfd, newfd,0 ); } -asmlinkage long sys_dup (unsigned int fildes) +SYSCALL_DEFINE1(dup, unsigned int, fildes) {int ret = -EBADF ;struct file *file =fget (fildes);
@@ -334,7 +334,7 @@ static long do_fcntl(int fd, unsigned int cmd, unsigned long arg,return err; } -asmlinkage long sys_fcntl (unsigned int fd,unsigned int cmd,unsigned long arg) +SYSCALL_DEFINE3(fcntl, unsigned int, fd, unsigned int, cmd, unsigned long, arg) {struct file *filp;long err = -EBADF ;
@@ -357,7 +357,8 @@ out: }#if BITS_PER_LONG ==32 -asmlinkage long sys_fcntl64 (unsigned int fd,unsigned int cmd,unsigned long arg) +SYSCALL_DEFINE3(fcntl64, unsigned int, fd, unsigned int, cmd, + unsigned long, arg) {struct file * filp;long err;
fs/filesystems.c +1 -1
@@ -179,7 +179,7 @@ static int fs_maxindex(void)/* * Whee.. Weird sysv syscall. */ -asmlinkage long sys_sysfs (int option,unsigned long arg1,unsigned long arg2) +SYSCALL_DEFINE3(sysfs, int, option, unsigned long, arg1, unsigned long, arg2) {int retval = -EINVAL ;
fs/fuse/file.c +2 -2
@@ -646,7 +646,7 @@ static int fuse_write_begin(struct file *file, struct address_space *mapping, {pgoff_t index = pos >>PAGE_CACHE_SHIFT ; - *pagep =__grab_cache_page (mapping, index); + *pagep =grab_cache_page_write_begin (mapping, index, flags);if (!*pagep)return -ENOMEM ;return 0 ;
@@ -779,7 +779,7 @@ static ssize_t fuse_fill_write_pages(struct fuse_req *req,break ; err = -ENOMEM ; - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index,0 );if (!page)break ;
fs/gfs2/ops_address.c +1 -1
@@ -675,7 +675,7 @@ static int gfs2_write_begin(struct file *file, struct address_space *mapping, goto out_trans_fail; error = -ENOMEM ; - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags); *pagep = page;if (unlikely (!page)) goto out_endtrans;
fs/hostfs/hostfs_kern.c +1 -1
@@ -501,7 +501,7 @@ int hostfs_write_begin(struct file *file, struct address_space *mapping, {pgoff_t index = pos >>PAGE_CACHE_SHIFT ; - *pagep =__grab_cache_page (mapping, index); + *pagep =grab_cache_page_write_begin (mapping, index, flags);if (!*pagep)return -ENOMEM ;return 0 ;
fs/inotify_user.c +5 -4
@@ -576,7 +576,7 @@ static const struct inotify_operations inotify_user_ops = { .destroy_watch = free_inotify_user_watch, }; -asmlinkage long sys_inotify_init1 (int flags) +SYSCALL_DEFINE1(inotify_init1, int, flags) {struct inotify_device *dev;struct inotify_handle *ih;
@@ -655,12 +655,13 @@ out_put_fd:return ret; } -asmlinkage long sys_inotify_init (void ) +SYSCALL_DEFINE0 (inotify_init) {return sys_inotify_init1 (0 ); } -asmlinkage long sys_inotify_add_watch (int fd,const char __user *pathname,u32 mask) +SYSCALL_DEFINE3(inotify_add_watch, int, fd, const char __user *, pathname, + u32, mask) {struct inode *inode;struct inotify_device *dev;
@@ -704,7 +705,7 @@ fput_and_out:return ret; } -asmlinkage long sys_inotify_rm_watch (int fd,u32 wd) +SYSCALL_DEFINE2(inotify_rm_watch, int, fd, __s32, wd) {struct file *filp;struct inotify_device *dev;
fs/ioctl.c +1 -1
@@ -472,7 +472,7 @@ int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd,return error; } -asmlinkage long sys_ioctl (unsigned int fd,unsigned int cmd,unsigned long arg) +SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd, unsigned long, arg) {struct file *filp;int error = -EBADF ;
fs/ioprio.c +2 -3
@@ -65,7 +65,7 @@ static int set_task_ioprio(struct task_struct *task, int ioprio)return err; } -asmlinkage long sys_ioprio_set (int which,int who,int ioprio) +SYSCALL_DEFINE3(ioprio_set, int, which, int, who, int, ioprio) {int class =IOPRIO_PRIO_CLASS (ioprio);int data =IOPRIO_PRIO_DATA (ioprio);
@@ -181,7 +181,7 @@ int ioprio_best(unsigned short aprio, unsigned short bprio)return aprio; } -asmlinkage long sys_ioprio_get (int which,int who) +SYSCALL_DEFINE2(ioprio_get, int, which, int, who) {struct task_struct *g, *p;struct user_struct *user;
@@ -245,4 +245,3 @@ asmlinkage long sys_ioprio_get(int which, int who)read_unlock (&tasklist_lock);return ret; } -
fs/jffs2/file.c +1 -1
@@ -132,7 +132,7 @@ static int jffs2_write_begin(struct file *filp, struct address_space *mapping,uint32_t pageofs = index <<PAGE_CACHE_SHIFT ;int ret =0 ; - pg =__grab_cache_page (mapping, index); + pg =grab_cache_page_write_begin (mapping, index, flags);if (!pg)return -ENOMEM ; *pagep = pg;
fs/libfs.c +1 -1
@@ -360,7 +360,7 @@ int simple_write_begin(struct file *file, struct address_space *mapping, index = pos >>PAGE_CACHE_SHIFT ; from = pos & (PAGE_CACHE_SIZE -1 ); - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page)return -ENOMEM ;
fs/locks.c +1 -1
@@ -1564,7 +1564,7 @@ EXPORT_SYMBOL(flock_lock_file_wait);* %LOCK_MAND can be combined with %LOCK_READ or %LOCK_WRITE to allow other * processes read and write access respectively. */ -asmlinkage long sys_flock (unsigned int fd,unsigned int cmd) +SYSCALL_DEFINE2(flock, unsigned int, fd, unsigned int, cmd) {struct file *filp;struct file_lock *lock;
fs/minix/dir.c +1 -1
@@ -280,7 +280,7 @@ int minix_add_link(struct dentry *dentry, struct inode *inode)return -EINVAL ; got_it: - pos = (page->index >>PAGE_CACHE_SHIFT ) + p - (char *)page_address (page); + pos =page_offset (page) + p - (char *)page_address (page); err =__minix_write_begin (NULL , page->mapping, pos, sbi->s_dirsize,AOP_FLAG_UNINTERRUPTIBLE , &page,NULL );if (err)
fs/namei.c +26 -22
147 lines not on this page · raw message
fs/namespace.c +6 -7
@@ -1128,7 +1128,7 @@ static int do_umount(struct vfsmount *mnt, int flags)* unixes. Our API is identical to OSF/1 to avoid making a mess of AMD */ -asmlinkage long sys_umount (char __user * name,int flags) +SYSCALL_DEFINE2(umount, char __user *, name, int, flags) {struct path path;int retval;
@@ -1160,7 +1160,7 @@ out:/* * The 2.0 compatible umount. No flags. */ -asmlinkage long sys_oldumount (char __user * name) +SYSCALL_DEFINE1(oldumount, char __user *, name) {return sys_umount (name,0 ); }
@@ -2045,9 +2045,8 @@ struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,return new_ns; } -asmlinkage long sys_mount (char __user * dev_name,char __user * dir_name, -char __user * type,unsigned long flags, -void __user * data) +SYSCALL_DEFINE5(mount, char __user *, dev_name, char __user *, dir_name, + char __user *, type, unsigned long, flags, void __user *, data) {int retval;unsigned long data_page;
@@ -2172,8 +2171,8 @@ static void chroot_fs_refs(struct path *old_root, struct path *new_root)* though, so you may need to say mount --bind /nfs/my_root /nfs/my_root * first. */ -asmlinkage long sys_pivot_root (const char __user * new_root, -const char __user * put_old) +SYSCALL_DEFINE2(pivot_root, const char __user *, new_root, + const char __user *, put_old) {struct vfsmount *tmp;struct path new, old, parent_path, root_parent, root;
fs/nfs/file.c +1 -1
@@ -354,7 +354,7 @@ static int nfs_write_begin(struct file *file, struct address_space *mapping, file->f_path.dentry->d_name.name, mapping->host->i_ino, len, (long long) pos); - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page)return -ENOMEM ; *pagep = page;
fs/nfs/read.c +0 -6
@@ -533,12 +533,6 @@ readpage_async_filler(void *data, struct page *page)unsigned int len;int error; - error =nfs_wb_page (inode, page); -if (error) - goto out_unlock; -if (PageUptodate (page)) - goto out_unlock; - len =nfs_page_length (page);if (len ==0 )return nfs_return_empty_page (page);
fs/nfsctl.c +2 -2
@@ -82,8 +82,8 @@ static struct { }, }; -long -asmlinkage sys_nfsservctl (int cmd,struct nfsctl_arg __user *arg,void __user *res) +SYSCALL_DEFINE3(nfsservctl, int, cmd, struct nfsctl_arg __user *, arg, + void __user *, res) {struct file *file;void __user *p = &arg->u;
fs/open.c +49 -33
248 lines not on this page · raw message
fs/pipe.c +2 -2
@@ -1048,7 +1048,7 @@ int do_pipe(int *fd)* sys_pipe() is the normal C calling standard for creating * a pipe. It's not the way Unix traditionally does this, though. */ -asmlinkage long __weak sys_pipe2 (int __user *fildes,int flags) +SYSCALL_DEFINE2(pipe2, int __user *, fildes, int, flags) {int fd[2 ];int error;
@@ -1064,7 +1064,7 @@ asmlinkage long __weak sys_pipe2(int __user *fildes, int flags)return error; } -asmlinkage long __weak sys_pipe (int __user *fildes) +SYSCALL_DEFINE1(pipe, int __user *, fildes) {return sys_pipe2 (fildes,0 ); }
fs/quota.c +2 -1
@@ -368,7 +368,8 @@ static inline struct super_block *quotactl_block(const char __user *special)* calls. Maybe we need to add the process quotas etc. in the future, * but we probably should use rlimits for that. */ -asmlinkage long sys_quotactl (unsigned int cmd,const char __user *special,qid_t id,void __user *addr) +SYSCALL_DEFINE4(quotactl, unsigned int, cmd, const char __user *, special, + qid_t, id, void __user *, addr) {uint cmds, type;struct super_block *sb =NULL ;
fs/read_write.c +33 -16
116 lines not on this page · raw message
fs/readdir.c +6 -3
@@ -102,7 +102,8 @@ efault:return -EFAULT ; } -asmlinkage long old_readdir (unsigned int fd,struct old_linux_dirent __user * dirent,unsigned int count) +SYSCALL_DEFINE3(old_readdir, unsigned int, fd, + struct old_linux_dirent __user *, dirent, unsigned int, count) {int error;struct file * file;
@@ -187,7 +188,8 @@ efault:return -EFAULT ; } -asmlinkage long sys_getdents (unsigned int fd,struct linux_dirent __user * dirent,unsigned int count) +SYSCALL_DEFINE3(getdents, unsigned int, fd, + struct linux_dirent __user *, dirent, unsigned int, count) {struct file * file;struct linux_dirent __user * lastdirent;
@@ -268,7 +270,8 @@ efault:return -EFAULT ; } -asmlinkage long sys_getdents64 (unsigned int fd,struct linux_dirent64 __user * dirent,unsigned int count) +SYSCALL_DEFINE3(getdents64, unsigned int, fd, + struct linux_dirent64 __user *, dirent, unsigned int, count) {struct file * file;struct linux_dirent64 __user * lastdirent;
fs/reiserfs/inode.c +1 -1
@@ -2556,7 +2556,7 @@ static int reiserfs_write_begin(struct file *file, } index = pos >>PAGE_CACHE_SHIFT ; - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (!page)return -ENOMEM ; *pagep = page;
fs/select.c +15 -14
@@ -507,8 +507,8 @@ out_nofds:return ret; } -asmlinkage long sys_select (int n,fd_set __user *inp,fd_set __user *outp, -fd_set __user *exp,struct timeval __user *tvp) +SYSCALL_DEFINE5(select, int, n, fd_set __user *, inp, fd_set __user *, outp, + fd_set __user *, exp, struct timeval __user *, tvp) {struct timespec end_time, *to =NULL ;struct timeval tv;
@@ -532,9 +532,9 @@ asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp, }#ifdef HAVE_SET_RESTORE_SIGMASK -asmlinkage long sys_pselect7 (int n,fd_set __user *inp,fd_set __user *outp, -fd_set __user *exp,struct timespec __user *tsp, -const sigset_t __user *sigmask,size_t sigsetsize) +static long do_pselect (int n,fd_set __user *inp,fd_set __user *outp, +fd_set __user *exp,struct timespec __user *tsp, +const sigset_t __user *sigmask,size_t sigsetsize) {sigset_t ksigmask, sigsaved;struct timespec ts, end_time, *to =NULL ;
@@ -560,7 +560,7 @@ asmlinkage long sys_pselect7(int n, fd_set __user *inp, fd_set __user *outp,sigprocmask (SIG_SETMASK , &ksigmask, &sigsaved); } - ret =core_sys_select (n, inp, outp, exp, &end_time); + ret =core_sys_select (n, inp, outp, exp, to); ret =poll_select_copy_remaining (&end_time, tsp,0 , ret);if (ret == -ERESTARTNOHAND ) {
@@ -586,8 +586,9 @@ asmlinkage long sys_pselect7(int n, fd_set __user *inp, fd_set __user *outp,* which has a pointer to the sigset_t itself followed by a size_t containing * the sigset size. */ -asmlinkage long sys_pselect6 (int n,fd_set __user *inp,fd_set __user *outp, -fd_set __user *exp,struct timespec __user *tsp,void __user *sig) +SYSCALL_DEFINE6(pselect6, int, n, fd_set __user *, inp, fd_set __user *, outp, + fd_set __user *, exp, struct timespec __user *, tsp, + void __user *, sig) {size_t sigsetsize =0 ;sigset_t __user *up =NULL ;
@@ -600,7 +601,7 @@ asmlinkage long sys_pselect6(int n, fd_set __user *inp, fd_set __user *outp, return -EFAULT; } -return sys_pselect7 (n, inp, outp, exp, tsp, up, sigsetsize); +return do_pselect (n, inp, outp, exp, tsp, up, sigsetsize); }#endif /* HAVE_SET_RESTORE_SIGMASK */
@@ -806,8 +807,8 @@ static long do_restart_poll(struct restart_block *restart_block)return ret; } -asmlinkage long sys_poll (struct pollfd __user *ufds,unsigned int nfds, -long timeout_msecs) +SYSCALL_DEFINE3(poll, struct pollfd __user *, ufds, unsigned int, nfds, + long, timeout_msecs) {struct timespec end_time, *to =NULL ;int ret;
@@ -841,9 +842,9 @@ asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds, }#ifdef HAVE_SET_RESTORE_SIGMASK -asmlinkage long sys_ppoll (struct pollfd __user *ufds,unsigned int nfds, -struct timespec __user *tsp,const sigset_t __user *sigmask, -size_t sigsetsize) +SYSCALL_DEFINE5(ppoll, struct pollfd __user *, ufds, unsigned int, nfds, + struct timespec __user *, tsp, const sigset_t __user *, sigmask, + size_t, sigsetsize) {sigset_t ksigmask, sigsaved;struct timespec ts, end_time, *to =NULL ;
fs/signalfd.c +4 -4
@@ -205,8 +205,8 @@ static const struct file_operations signalfd_fops = { .read = signalfd_read, }; -asmlinkage long sys_signalfd4 (int ufd,sigset_t __user *user_mask, -size_t sizemask,int flags) +SYSCALL_DEFINE4(signalfd4, int, ufd, sigset_t __user *, user_mask, + size_t, sizemask, int, flags) {sigset_t sigmask;struct signalfd_ctx *ctx;
@@ -259,8 +259,8 @@ asmlinkage long sys_signalfd4(int ufd, sigset_t __user *user_mask,return ufd; } -asmlinkage long sys_signalfd (int ufd,sigset_t __user *user_mask, -size_t sizemask) +SYSCALL_DEFINE3(signalfd, int, ufd, sigset_t __user *, user_mask, + size_t, sizemask) {return sys_signalfd4 (ufd, user_mask, sizemask,0 ); }
fs/smbfs/file.c +1 -1
@@ -297,7 +297,7 @@ static int smb_write_begin(struct file *file, struct address_space *mapping, struct page **pagep, void **fsdata) { pgoff_t index = pos >> PAGE_CACHE_SHIFT; - *pagep =__grab_cache_page (mapping, index); + *pagep =grab_cache_page_write_begin (mapping, index, flags);if (!*pagep)return -ENOMEM ;return 0 ;
fs/splice.c +6 -6
@@ -1434,8 +1434,8 @@ static long vmsplice_to_pipe(struct file *file, const struct iovec __user *iov,* Currently we punt and implement it as a normal copy, see pipe_to_user(). * */ -asmlinkage long sys_vmsplice (int fd,const struct iovec __user *iov, -unsigned long nr_segs,unsigned int flags) +SYSCALL_DEFINE4(vmsplice, int, fd, const struct iovec __user *, iov, + unsigned long, nr_segs, unsigned int, flags) {struct file *file;long error;
@@ -1460,9 +1460,9 @@ asmlinkage long sys_vmsplice(int fd, const struct iovec __user *iov,return error; } -asmlinkage long sys_splice (int fd_in,loff_t __user *off_in, -int fd_out,loff_t __user *off_out, -size_t len,unsigned int flags) +SYSCALL_DEFINE6(splice, int, fd_in, loff_t __user *, off_in, + int, fd_out, loff_t __user *, off_out, + size_t, len, unsigned int, flags) {long error;struct file *in, *out;
@@ -1684,7 +1684,7 @@ static long do_tee(struct file *in, struct file *out, size_t len,return ret; } -asmlinkage long sys_tee (int fdin,int fdout,size_t len,unsigned int flags) +SYSCALL_DEFINE4(tee, int, fdin, int, fdout, size_t, len, unsigned int, flags) {struct file *in;int error, fput_in;
fs/stat.c +21 -17
@@ -152,7 +152,7 @@ static int cp_old_stat(struct kstat *stat, struct __old_kernel_stat __user * stareturn copy_to_user (statbuf,&tmp,sizeof (tmp)) ? -EFAULT :0 ; } -asmlinkage long sys_stat (char __user * filename,struct __old_kernel_stat __user * statbuf) +SYSCALL_DEFINE2(stat, char __user *, filename, struct __old_kernel_stat __user *, statbuf) {struct kstat stat;int error =vfs_stat_fd (AT_FDCWD , filename, &stat);
@@ -162,7 +162,8 @@ asmlinkage long sys_stat(char __user * filename, struct __old_kernel_stat __userreturn error; } -asmlinkage long sys_lstat (char __user * filename,struct __old_kernel_stat __user * statbuf) + +SYSCALL_DEFINE2(lstat, char __user *, filename, struct __old_kernel_stat __user *, statbuf) {struct kstat stat;int error =vfs_lstat_fd (AT_FDCWD , filename, &stat);
@@ -172,7 +173,8 @@ asmlinkage long sys_lstat(char __user * filename, struct __old_kernel_stat __usereturn error; } -asmlinkage long sys_fstat (unsigned int fd,struct __old_kernel_stat __user * statbuf) + +SYSCALL_DEFINE2(fstat, unsigned int, fd, struct __old_kernel_stat __user *, statbuf) {struct kstat stat;int error =vfs_fstat (fd, &stat);
@@ -235,7 +237,7 @@ static int cp_new_stat(struct kstat *stat, struct stat __user *statbuf)return copy_to_user (statbuf,&tmp,sizeof (tmp)) ? -EFAULT :0 ; } -asmlinkage long sys_newstat (char __user *filename,struct stat __user *statbuf) +SYSCALL_DEFINE2(newstat, char __user *, filename, struct stat __user *, statbuf) {struct kstat stat;int error =vfs_stat_fd (AT_FDCWD , filename, &stat);
@@ -246,7 +248,7 @@ asmlinkage long sys_newstat(char __user *filename, struct stat __user *statbuf)return error; } -asmlinkage long sys_newlstat (char __user *filename,struct stat __user *statbuf) +SYSCALL_DEFINE2(newlstat, char __user *, filename, struct stat __user *, statbuf) {struct kstat stat;int error =vfs_lstat_fd (AT_FDCWD , filename, &stat);
@@ -258,8 +260,8 @@ asmlinkage long sys_newlstat(char __user *filename, struct stat __user *statbuf) }#if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT) -asmlinkage long sys_newfstatat (int dfd,char __user *filename, -struct stat __user *statbuf,int flag) +SYSCALL_DEFINE4(newfstatat, int, dfd, char __user *, filename, + struct stat __user *, statbuf, int, flag) {struct kstat stat;int error = -EINVAL ;
@@ -280,7 +282,7 @@ out: }#endif -asmlinkage long sys_newfstat (unsigned int fd,struct stat __user *statbuf) +SYSCALL_DEFINE2(newfstat, unsigned int, fd, struct stat __user *, statbuf) {struct kstat stat;int error =vfs_fstat (fd, &stat);
@@ -291,8 +293,8 @@ asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf)return error; } -asmlinkage long sys_readlinkat (int dfd,const char __user *pathname, -char __user *buf,int bufsiz) +SYSCALL_DEFINE4(readlinkat, int, dfd, const char __user *, pathname, + char __user *, buf, int, bufsiz) {struct path path;int error;
@@ -318,8 +320,8 @@ asmlinkage long sys_readlinkat(int dfd, const char __user *pathname,return error; } -asmlinkage long sys_readlink (const char __user *path,char __user *buf, -int bufsiz) +SYSCALL_DEFINE3(readlink, const char __user *, path, char __user *, buf, + int, bufsiz) {return sys_readlinkat (AT_FDCWD , path, buf, bufsiz); }
@@ -365,7 +367,7 @@ static long cp_new_stat64(struct kstat *stat, struct stat64 __user *statbuf)return copy_to_user (statbuf,&tmp,sizeof (tmp)) ? -EFAULT :0 ; } -asmlinkage long sys_stat64 (char __user * filename,struct stat64 __user * statbuf) +SYSCALL_DEFINE2(stat64, char __user *, filename, struct stat64 __user *, statbuf) {struct kstat stat;int error =vfs_stat (filename, &stat);
@@ -375,7 +377,8 @@ asmlinkage long sys_stat64(char __user * filename, struct stat64 __user * statbureturn error; } -asmlinkage long sys_lstat64 (char __user * filename,struct stat64 __user * statbuf) + +SYSCALL_DEFINE2(lstat64, char __user *, filename, struct stat64 __user *, statbuf) {struct kstat stat;int error =vfs_lstat (filename, &stat);
@@ -385,7 +388,8 @@ asmlinkage long sys_lstat64(char __user * filename, struct stat64 __user * statbreturn error; } -asmlinkage long sys_fstat64 (unsigned long fd,struct stat64 __user * statbuf) + +SYSCALL_DEFINE2(fstat64, unsigned long, fd, struct stat64 __user *, statbuf) {struct kstat stat;int error =vfs_fstat (fd, &stat);
@@ -396,8 +400,8 @@ asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user * statbuf)return error; } -asmlinkage long sys_fstatat64 (int dfd,char __user *filename, -struct stat64 __user *statbuf,int flag) +SYSCALL_DEFINE4(fstatat64, int, dfd, char __user *, filename, + struct stat64 __user *, statbuf, int, flag) {struct kstat stat;int error = -EINVAL ;
fs/super.c +1 -1
@@ -534,7 +534,7 @@ rescan:return NULL ; } -asmlinkage long sys_ustat (unsigned dev,struct ustat __user * ubuf) +SYSCALL_DEFINE2(ustat, unsigned, dev, struct ustat __user *, ubuf) {struct super_block *s;struct ustat tmp;
fs/sync.c +25 -7
@@ -36,7 +36,7 @@ static void do_sync(unsigned long wait)laptop_sync_completion (); } -asmlinkage long sys_sync (void ) +SYSCALL_DEFINE0 (sync) {do_sync (1 );return 0 ;
@@ -118,12 +118,12 @@ static long __do_fsync(unsigned int fd, int datasync)return ret; } -asmlinkage long sys_fsync (unsigned int fd) +SYSCALL_DEFINE1(fsync, unsigned int, fd) {return __do_fsync (fd,0 ); } -asmlinkage long sys_fdatasync (unsigned int fd) +SYSCALL_DEFINE1(fdatasync, unsigned int, fd) {return __do_fsync (fd,1 ); }
@@ -175,8 +175,8 @@ asmlinkage long sys_fdatasync(unsigned int fd)* already-instantiated disk blocks, there are no guarantees here that the data * will be available after a crash. */ -asmlinkage long sys_sync_file_range (int fd,loff_t offset,loff_t nbytes, -unsigned int flags) +SYSCALL_DEFINE (sync_file_range)(int fd,loff_t offset,loff_t nbytes, +unsigned int flags) {int ret;struct file *file;
@@ -236,14 +236,32 @@ out_put: out:return ret; } +#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS +asmlinkage long SyS_sync_file_range (long fd,loff_t offset,loff_t nbytes, +long flags) +{ +return SYSC_sync_file_range ((int ) fd, offset, nbytes, + (unsigned int ) flags); +} +SYSCALL_ALIAS (sys_sync_file_range, SyS_sync_file_range); +#endif /* It would be nice if people remember that not all the world's an i386 when they introduce new system calls */ -asmlinkage long sys_sync_file_range2 (int fd,unsigned int flags, -loff_t offset,loff_t nbytes) +SYSCALL_DEFINE (sync_file_range2)(int fd,unsigned int flags, +loff_t offset,loff_t nbytes) {return sys_sync_file_range (fd, offset, nbytes, flags); } +#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS +asmlinkage long SyS_sync_file_range2 (long fd,long flags, +loff_t offset,loff_t nbytes) +{ +return SYSC_sync_file_range2 ((int ) fd, (unsigned int ) flags, + offset, nbytes); +} +SYSCALL_ALIAS (sys_sync_file_range2, SyS_sync_file_range2); +#endif /* * `endbyte' is inclusive
fs/timerfd.c +5 -5
@@ -177,7 +177,7 @@ static struct file *timerfd_fget(int fd)return file; } -asmlinkage long sys_timerfd_create (int clockid,int flags) +SYSCALL_DEFINE2(timerfd_create, int, clockid, int, flags) {int ufd;struct timerfd_ctx *ctx;
@@ -208,9 +208,9 @@ asmlinkage long sys_timerfd_create(int clockid, int flags)return ufd; } -asmlinkage long sys_timerfd_settime (int ufd,int flags, -const struct itimerspec __user *utmr, -struct itimerspec __user *otmr) +SYSCALL_DEFINE4 (timerfd_settime, int, ufd, int, flags, + const struct itimerspec __user *, utmr, + struct itimerspec __user *, otmr) {struct file *file;struct timerfd_ctx *ctx;
@@ -265,7 +265,7 @@ asmlinkage long sys_timerfd_settime(int ufd, int flags,return 0 ; } -asmlinkage long sys_timerfd_gettime (int ufd,struct itimerspec __user *otmr) +SYSCALL_DEFINE2(timerfd_gettime, int, ufd, struct itimerspec __user *, otmr) {struct file *file;struct timerfd_ctx *ctx;
fs/ubifs/file.c +5 -4
@@ -219,7 +219,8 @@ static void release_existing_page_budget(struct ubifs_info *c) }static int write_begin_slow (struct address_space *mapping, -loff_t pos,unsigned len,struct page **pagep) +loff_t pos,unsigned len,struct page **pagep, +unsigned flags) {struct inode *inode = mapping->host;struct ubifs_info *c = inode->i_sb->s_fs_info;
@@ -247,7 +248,7 @@ static int write_begin_slow(struct address_space *mapping,if (unlikely (err))return err; - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (unlikely (!page)) {ubifs_release_budget (c, &req);return -ENOMEM ;
@@ -438,7 +439,7 @@ static int ubifs_write_begin(struct file *file, struct address_space *mapping,return -EROFS ;/* Try out the fast-path part first */ - page =__grab_cache_page (mapping, index); + page =grab_cache_page_write_begin (mapping, index, flags);if (unlikely (!page))return -ENOMEM ;
@@ -483,7 +484,7 @@ static int ubifs_write_begin(struct file *file, struct address_space *mapping,unlock_page (page);page_cache_release (page); -return write_begin_slow (mapping, pos, len, pagep); +return write_begin_slow (mapping, pos, len, pagep, flags); }/*
fs/utimes.c +7 -4
@@ -24,7 +24,7 @@* must be owner or have write permission. * Else, update from *times, must be owner or super user. */ -asmlinkage long sys_utime (char __user *filename,struct utimbuf __user *times) +SYSCALL_DEFINE2(utime, char __user *, filename, struct utimbuf __user *, times) {struct timespec tv[2 ];
@@ -170,7 +170,8 @@ out:return error; } -asmlinkage long sys_utimensat (int dfd,char __user *filename,struct timespec __user *utimes,int flags) +SYSCALL_DEFINE4(utimensat, int, dfd, char __user *, filename, + struct timespec __user *, utimes, int, flags) {struct timespec tstimes[2 ];
@@ -187,7 +188,8 @@ asmlinkage long sys_utimensat(int dfd, char __user *filename, struct timespec __return do_utimes (dfd, filename, utimes ? tstimes :NULL , flags); } -asmlinkage long sys_futimesat (int dfd,char __user *filename,struct timeval __user *utimes) +SYSCALL_DEFINE3(futimesat, int, dfd, char __user *, filename, + struct timeval __user *, utimes) {struct timeval times[2 ];struct timespec tstimes[2 ];
@@ -214,7 +216,8 @@ asmlinkage long sys_futimesat(int dfd, char __user *filename, struct timeval __ureturn do_utimes (dfd, filename, utimes ? tstimes :NULL ,0 ); } -asmlinkage long sys_utimes (char __user *filename,struct timeval __user *utimes) +SYSCALL_DEFINE2(utimes, char __user *, filename, + struct timeval __user *, utimes) {return sys_futimesat (AT_FDCWD , filename, utimes); }
fs/xattr.c +24 -29
60 lines not on this page · raw message
include/linux/syscalls.h +118 -53
171 lines not on this page · raw message
kernel/posix-timers.c +19 -24
43 lines not on this page · raw message
kernel/signal.c +24 -35
59 lines not on this page · raw message
kernel/sys.c +38 -34
72 lines not on this page · raw message
net/socket.c +32 -31
63 lines not on this page · raw message
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.
Quoted 5 lines · On Sunday 18 January 2009 19:54:08 you wrote:
We (the -stable team) are announcing the release of the 2.6.28.1 kernel.
It contains a wide range of bugfixes, and all users of the 2.6.28 kernel series are strongly encouraged to upgrade.
I do not see any fix for the broken libusb: http://lkml.org/lkml/2009/1/2/47
libusb is not only broken on x86_64, but everywhere. My camera does not work with gphoto2 in 2.6.28 (I'm using x86). The patch linked above fixes the problem for me.
Signature · 1 line
Ondrej Zary
Quoted 4 lines · Ondrej Zary
Quoted 3 lines · On Sunday 18 January 2009 19:54:08 you wrote:
We (the -stable team) are announcing the release of the 2.6.28.1 kernel.
Quoted 8 lines
Quoted 2 lines
It contains a wide range of bugfixes, and all users of the 2.6.28 kernel series are strongly encouraged to upgrade.
I do not see any fix for the broken libusb: http://lkml.org/lkml/2009/1/2/47
libusb is not only broken on
x86_64, but everywhere. My camera does not work with gphoto2 in 2.6.28 (I'm using x86). The patch linked above fixes the problem for me.
Yes, that patch is still in the queue for the next .28 release.
thanks,
greg k-h
Quoted 4 lines · Ondrej Zary
Quoted 3 lines · On Sunday 18 January 2009 19:54:08 you wrote:
We (the -stable team) are announcing the release of the 2.6.28.1 kernel.
Quoted 8 lines
Quoted 2 lines
It contains a wide range of bugfixes, and all users of the 2.6.28 kernel series are strongly encouraged to upgrade.
I do not see any fix for the broken libusb: http://lkml.org/lkml/2009/1/2/47
libusb is not only broken on
x86_64, but everywhere. My camera does not work with gphoto2 in 2.6.28 (I'm using x86). The patch linked above fixes the problem for me.
This should all be resolved now with 2.6.28.3, if not, please let us know.
thanks,
greg k-h