Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
2c5c4f1f
Commit
2c5c4f1f
authored
Feb 13, 2003
by
Anton Blanchard
Browse files
Options
Browse Files
Download
Plain Diff
Merge samba.org:/scratch/anton/linux-2.5
into samba.org:/scratch/anton/sfr
parents
fe2fffa6
962bf880
Changes
68
Hide whitespace changes
Inline
Side-by-side
Showing
68 changed files
with
291 additions
and
475 deletions
+291
-475
Makefile
Makefile
+9
-8
arch/alpha/kernel/signal.c
arch/alpha/kernel/signal.c
+1
-1
arch/cris/kernel/signal.c
arch/cris/kernel/signal.c
+1
-1
arch/i386/kernel/signal.c
arch/i386/kernel/signal.c
+1
-1
arch/ia64/kernel/signal.c
arch/ia64/kernel/signal.c
+1
-1
arch/m68knommu/kernel/signal.c
arch/m68knommu/kernel/signal.c
+1
-1
arch/mips/kernel/signal.c
arch/mips/kernel/signal.c
+1
-1
arch/mips64/kernel/signal.c
arch/mips64/kernel/signal.c
+1
-1
arch/mips64/kernel/signal32.c
arch/mips64/kernel/signal32.c
+1
-1
arch/ppc/kernel/signal.c
arch/ppc/kernel/signal.c
+1
-1
arch/ppc64/kernel/signal.c
arch/ppc64/kernel/signal.c
+1
-1
arch/ppc64/kernel/signal32.c
arch/ppc64/kernel/signal32.c
+1
-1
arch/s390/kernel/signal.c
arch/s390/kernel/signal.c
+1
-1
arch/s390x/kernel/signal.c
arch/s390x/kernel/signal.c
+1
-1
arch/s390x/kernel/signal32.c
arch/s390x/kernel/signal32.c
+1
-1
arch/sh/kernel/signal.c
arch/sh/kernel/signal.c
+1
-1
arch/sparc/Makefile
arch/sparc/Makefile
+2
-2
arch/sparc/boot/Makefile
arch/sparc/boot/Makefile
+1
-1
arch/sparc/kernel/init_task.c
arch/sparc/kernel/init_task.c
+1
-0
arch/sparc/kernel/signal.c
arch/sparc/kernel/signal.c
+15
-124
arch/sparc/mm/init.c
arch/sparc/mm/init.c
+1
-1
arch/sparc64/kernel/init_task.c
arch/sparc64/kernel/init_task.c
+1
-0
arch/sparc64/kernel/ioctl32.c
arch/sparc64/kernel/ioctl32.c
+1
-0
arch/sparc64/kernel/signal.c
arch/sparc64/kernel/signal.c
+16
-116
arch/sparc64/kernel/signal32.c
arch/sparc64/kernel/signal32.c
+12
-114
arch/um/kernel/signal_kern.c
arch/um/kernel/signal_kern.c
+1
-1
arch/v850/kernel/signal.c
arch/v850/kernel/signal.c
+1
-1
arch/x86_64/kernel/signal.c
arch/x86_64/kernel/signal.c
+1
-1
drivers/serial/sunzilog.c
drivers/serial/sunzilog.c
+14
-10
fs/nfs/nfs3xdr.c
fs/nfs/nfs3xdr.c
+8
-5
fs/nfs/nfs4xdr.c
fs/nfs/nfs4xdr.c
+8
-7
include/asm-alpha/signal.h
include/asm-alpha/signal.h
+1
-0
include/asm-cris/signal.h
include/asm-cris/signal.h
+1
-0
include/asm-i386/signal.h
include/asm-i386/signal.h
+1
-0
include/asm-ia64/signal.h
include/asm-ia64/signal.h
+1
-0
include/asm-m68knommu/signal.h
include/asm-m68knommu/signal.h
+2
-0
include/asm-mips/signal.h
include/asm-mips/signal.h
+2
-0
include/asm-mips64/signal.h
include/asm-mips64/signal.h
+3
-0
include/asm-ppc/signal.h
include/asm-ppc/signal.h
+1
-0
include/asm-ppc64/signal.h
include/asm-ppc64/signal.h
+2
-0
include/asm-s390/signal.h
include/asm-s390/signal.h
+2
-0
include/asm-s390x/signal.h
include/asm-s390x/signal.h
+2
-0
include/asm-sh/signal.h
include/asm-sh/signal.h
+2
-0
include/asm-sparc/cacheflush.h
include/asm-sparc/cacheflush.h
+3
-2
include/asm-sparc/page.h
include/asm-sparc/page.h
+8
-2
include/asm-sparc/signal.h
include/asm-sparc/signal.h
+26
-1
include/asm-sparc64/signal.h
include/asm-sparc64/signal.h
+26
-1
include/asm-v850/signal.h
include/asm-v850/signal.h
+2
-0
include/asm-x86_64/signal.h
include/asm-x86_64/signal.h
+3
-0
include/linux/signal.h
include/linux/signal.h
+1
-1
include/net/af_unix.h
include/net/af_unix.h
+23
-2
kernel/signal.c
kernel/signal.c
+3
-1
net/econet/af_econet.c
net/econet/af_econet.c
+1
-0
net/ipv4/netfilter/arptable_filter.c
net/ipv4/netfilter/arptable_filter.c
+4
-4
net/ipv4/netfilter/ip_nat_ftp.c
net/ipv4/netfilter/ip_nat_ftp.c
+4
-4
net/ipv4/netfilter/ip_nat_rule.c
net/ipv4/netfilter/ip_nat_rule.c
+6
-6
net/ipv4/netfilter/iptable_filter.c
net/ipv4/netfilter/iptable_filter.c
+6
-6
net/ipv4/netfilter/iptable_mangle.c
net/ipv4/netfilter/iptable_mangle.c
+10
-10
net/ipv4/proc.c
net/ipv4/proc.c
+1
-1
net/ipv4/tcp_output.c
net/ipv4/tcp_output.c
+2
-1
net/ipv6/netfilter/ip6table_filter.c
net/ipv6/netfilter/ip6table_filter.c
+6
-6
net/ipv6/netfilter/ip6table_mangle.c
net/ipv6/netfilter/ip6table_mangle.c
+10
-10
net/sched/sch_gred.c
net/sched/sch_gred.c
+1
-1
net/x25/x25_link.c
net/x25/x25_link.c
+3
-2
scripts/Makefile.build
scripts/Makefile.build
+1
-1
scripts/Makefile.lib
scripts/Makefile.lib
+7
-5
scripts/Makefile.modver
scripts/Makefile.modver
+3
-2
scripts/fixdep.c
scripts/fixdep.c
+4
-0
No files found.
Makefile
View file @
2c5c4f1f
...
...
@@ -36,7 +36,8 @@ KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
SUBARCH
:=
$(
shell
uname
-m
|
sed
-e
s/i.86/i386/
-e
s/sun4u/sparc64/
-e
s/arm.
*
/arm/
-e
s/sa110/arm/
)
ARCH
:=
$(SUBARCH)
KERNELPATH
=
kernel-
$(
shell
echo
$(KERNELRELEASE)
|
sed
-e
"s/-//g"
)
# Remove hyphens since they have special meaning in RPM filenames
KERNELPATH
=
kernel-
$(
subst
-,,
$(KERNELRELEASE)
)
UTS_MACHINE
:=
$(ARCH)
...
...
@@ -355,7 +356,7 @@ LDFLAGS_vmlinux += -T arch/$(ARCH)/vmlinux.lds.s
# It's a three stage process:
# o .tmp_vmlinux1 has all symbols and sections, but __kallsyms is
# empty
# Running kallsyms on that gives
a
s .tmp_kallsyms1.o with
# Running kallsyms on that gives
u
s .tmp_kallsyms1.o with
# the right size
# o .tmp_vmlinux2 now has a __kallsyms section of the right size,
# but due to the added section, some addresses have shifted
...
...
@@ -689,7 +690,7 @@ defconfig: scripts/kconfig/conf
# make clean Delete all automatically generated files, including
# tools and firmware.
# make mrproper Delete the current configuration, and related files
# Any core files spread around
is
deleted as well
# Any core files spread around
are
deleted as well
# make distclean Remove editor backup files, patch leftover files and the like
# Files removed with 'make clean'
...
...
@@ -884,9 +885,9 @@ if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\
$(
filter-out
$
(
cmd_
$(1)
)
,
$
(
cmd_
$@
))
\
$(
filter-out
$
(
cmd_
$@
)
,
$
(
cmd_
$(1)
)))
,
\
@set
-e
;
\
$(
if
$
(
$(quiet)
cmd_
$(1)
)
,echo
' $(
$(quiet)
cmd_
$(1
)
)
'
;
)
\
$(
if
$
(
$(quiet)
cmd_
$(1)
)
,echo
'
$(
subst
'
,
'\'',$(
$(quiet)
cmd_
$(1)
))
'
;
)
\
$
(
cmd_
$(1)
)
;
\
scripts/fixdep
$(depfile)
$@
'$(
cmd_
$(1
)
)
'
>
$
(
@D
)
/.
$
(
@F
)
.tmp
;
\
scripts/fixdep
$(depfile)
$@
'
$(
subst
$$,$$$$,
$(
subst
'
,
'\'',$(cmd_
$(1)
)
))
'
>
$
(
@D
)
/.
$
(
@F
)
.tmp
;
\
rm
-f
$(depfile)
;
\
mv
-f
$
(
@D
)
/.
$
(
@F
)
.tmp
$
(
@D
)
/.
$
(
@F
)
.cmd
)
...
...
@@ -913,19 +914,19 @@ define update-if-changed
fi
endef
# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj=
# Shorthand for $(Q)$(MAKE) -f scripts/Makefile.build obj=
dir
# Usage:
# $(Q)$(MAKE) $(build)=dir
build
:=
-f
scripts/Makefile.build obj
# Shorthand for $(Q)$(MAKE) scripts/Makefile.clean obj=dir
# Shorthand for $(Q)$(MAKE)
-f
scripts/Makefile.clean obj=dir
# Usage:
# $(Q)$(MAKE) $(clean)=dir
clean
:=
-f
scripts/Makefile.clean obj
# $(call descend,<dir>,<target>)
# Recursively call a sub-make in <dir> with target <target>
# Usage is deprecated, because make do not see this as an invocation of make.
# Usage is deprecated, because make do
es
not see this as an invocation of make.
descend
=
$(Q)$(MAKE)
-f
scripts/Makefile.build
obj
=
$(1)
$(2)
FORCE
:
arch/alpha/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -619,7 +619,7 @@ do_signal(sigset_t *oldset, struct pt_regs * regs, struct switch_stack * sw,
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
/* Whee! Actually deliver the signal. */
...
...
arch/cris/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -560,7 +560,7 @@ int do_signal(int canrestart, sigset_t *oldset, struct pt_regs *regs)
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
/* Whee! Actually deliver the signal. */
handle_signal
(
canrestart
,
signr
,
&
info
,
oldset
,
regs
);
...
...
arch/i386/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -582,7 +582,7 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset)
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
/* Reenable any watchpoints before delivering the
* signal to user space. The processor register will
...
...
arch/ia64/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -517,7 +517,7 @@ ia64_do_signal (sigset_t *oldset, struct sigscratch *scr, long in_syscall)
restart
=
0
;
while
(
1
)
{
int
signr
=
get_signal_to_deliver
(
&
info
,
&
scr
->
pt
);
int
signr
=
get_signal_to_deliver
(
&
info
,
&
scr
->
pt
,
NULL
);
if
(
signr
<=
0
)
break
;
...
...
arch/m68knommu/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -768,7 +768,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs)
for
(;;)
{
int
signr
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
!
signr
)
break
;
...
...
arch/mips/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -544,7 +544,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs)
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
if
(
regs
->
regs
[
0
])
syscall_restart
(
regs
,
ka
);
...
...
arch/mips64/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -602,7 +602,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs)
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
if
(
regs
->
regs
[
0
])
syscall_restart
(
regs
,
ka
);
...
...
arch/mips64/kernel/signal32.c
View file @
2c5c4f1f
...
...
@@ -676,7 +676,7 @@ asmlinkage int do_signal32(sigset_t *oldset, struct pt_regs *regs)
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
if
(
regs
->
regs
[
0
])
syscall_restart
(
regs
,
ka
);
...
...
arch/ppc/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -484,7 +484,7 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs)
newsp
=
frame
=
0
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
ka
=
&
current
->
sig
->
action
[
signr
-
1
];
if
(
(
ka
->
sa
.
sa_flags
&
SA_ONSTACK
)
...
...
arch/ppc64/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -551,7 +551,7 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs)
newsp
=
frame
=
0
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
ka
=
&
current
->
sighand
->
action
[
signr
-
1
];
if
((
ka
->
sa
.
sa_flags
&
SA_ONSTACK
)
...
...
arch/ppc64/kernel/signal32.c
View file @
2c5c4f1f
...
...
@@ -1065,7 +1065,7 @@ int do_signal32(sigset_t *oldset, struct pt_regs *regs)
newsp
=
frame
=
0
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
ka
=
&
current
->
sighand
->
action
[
signr
-
1
];
if
((
ka
->
sa
.
sa_flags
&
SA_ONSTACK
)
...
...
arch/s390/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -461,7 +461,7 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset)
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
/* Whee! Actually deliver the signal. */
handle_signal
(
signr
,
&
info
,
oldset
,
regs
);
...
...
arch/s390x/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -461,7 +461,7 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset)
}
#endif
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
/* Whee! Actually deliver the signal. */
handle_signal
(
signr
,
&
info
,
oldset
,
regs
);
...
...
arch/s390x/kernel/signal32.c
View file @
2c5c4f1f
...
...
@@ -622,7 +622,7 @@ int do_signal32(struct pt_regs *regs, sigset_t *oldset)
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
/* Whee! Actually deliver the signal. */
handle_signal32
(
signr
,
&
info
,
oldset
,
regs
);
...
...
arch/sh/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -556,7 +556,7 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset)
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
/* Whee! Actually deliver the signal. */
handle_signal
(
signr
,
&
info
,
oldset
,
regs
);
...
...
arch/sparc/Makefile
View file @
2c5c4f1f
...
...
@@ -38,7 +38,7 @@ endif
LDFLAGS_vmlinux
=
-r
head-y
:=
arch
/sparc/kernel/head.o
arch
/sparc/kernel/init_task.o
HEAD
:=
$
(
head-y
)
HEAD
_Y
:=
$
(
head-y
)
core-y
+=
arch
/sparc/kernel/
arch
/sparc/mm/
arch
/sparc/math-emu/
libs-y
+=
arch
/sparc/prom/
arch
/sparc/lib/
...
...
@@ -52,7 +52,7 @@ CORE_Y := $(patsubst %/, %/built-in.o, $(CORE_Y))
DRIVERS_Y
:=
$(
patsubst
%/, %/built-in.o,
$
(
drivers-y
))
NET_Y
:=
$(
patsubst
%/, %/built-in.o,
$
(
net-y
))
LIBS_Y
:=
$(
patsubst
%/, %/lib.a,
$
(
libs-y
))
export
INIT_Y
CORE_Y
DRIVERS_Y
NET_Y
LIBS_Y
HEAD
export
INIT_Y
CORE_Y
DRIVERS_Y
NET_Y
LIBS_Y
HEAD
_Y
makeboot
=
$(Q)$(MAKE)
-f
scripts/Makefile.build
obj
=
arch
/
$(ARCH)
/boot
$(1)
...
...
arch/sparc/boot/Makefile
View file @
2c5c4f1f
...
...
@@ -17,7 +17,7 @@ quiet_cmd_piggy = PIGGY $@
quiet_cmd_btfix
=
BTFIX
$@
cmd_btfix
=
$(OBJDUMP)
-x
vmlinux |
$(obj)
/btfixupprep
>
$@
BTOBJS
:=
$(HEAD)
$(INIT_Y)
BTOBJS
:=
$(HEAD
_Y
)
$(INIT_Y)
BTLIBS
:=
$(CORE_Y)
$(LIBS_Y)
$(DRIVERS_Y)
$(NET_Y)
LDFLAGS_image
:=
-T
arch
/sparc/vmlinux.lds.s
$(BTOBJS)
--start-group
$(BTLIBS)
--end-group
...
...
arch/sparc/kernel/init_task.c
View file @
2c5c4f1f
...
...
@@ -8,6 +8,7 @@
static
struct
fs_struct
init_fs
=
INIT_FS
;
static
struct
files_struct
init_files
=
INIT_FILES
;
static
struct
signal_struct
init_signals
=
INIT_SIGNALS
(
init_signals
);
static
struct
sighand_struct
init_sighand
=
INIT_SIGHAND
(
init_sighand
);
struct
mm_struct
init_mm
=
INIT_MM
(
init_mm
);
struct
task_struct
init_task
=
INIT_TASK
(
init_task
);
...
...
arch/sparc/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -1045,8 +1045,9 @@ static inline void syscall_restart(unsigned long orig_i0, struct pt_regs *regs,
asmlinkage
int
do_signal
(
sigset_t
*
oldset
,
struct
pt_regs
*
regs
,
unsigned
long
orig_i0
,
int
restart_syscall
)
{
struct
k_sigaction
*
ka
;
siginfo_t
info
;
struct
sparc_deliver_cookie
cookie
;
int
signr
;
/*
* XXX Disable svr4 signal handling until solaris emulation works.
...
...
@@ -1059,142 +1060,32 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs * regs,
int
svr4_signal
=
current
->
personality
==
PER_SVR4
;
#endif
cookie
.
restart_syscall
=
restart_syscall
;
cookie
.
orig_i0
=
orig_i0
;
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
for
(;;)
{
sigset_t
*
mask
=
&
current
->
blocked
;
unsigned
long
signr
=
0
;
spin_lock_irq
(
&
current
->
sighand
->
siglock
);
signr
=
dequeue_signal
(
mask
,
&
info
);
spin_unlock_irq
(
&
current
->
sighand
->
siglock
);
if
(
!
signr
)
break
;
if
((
current
->
ptrace
&
PT_PTRACED
)
&&
signr
!=
SIGKILL
)
{
/* Do the syscall restart before we let the debugger
* look at the child registers.
*/
if
(
restart_syscall
&&
(
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOHAND
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTSYS
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOINTR
))
{
/* replay the system call when we are done */
regs
->
u_regs
[
UREG_I0
]
=
orig_i0
;
regs
->
pc
-=
4
;
regs
->
npc
-=
4
;
restart_syscall
=
0
;
}
if
(
restart_syscall
&&
regs
->
u_regs
[
UREG_I0
]
==
ERESTART_RESTARTBLOCK
)
{
regs
->
u_regs
[
UREG_G1
]
=
__NR_restart_syscall
;
regs
->
pc
-=
4
;
regs
->
npc
-=
4
;
restart_syscall
=
0
;
}
current
->
exit_code
=
signr
;
set_current_state
(
TASK_STOPPED
);
/* This happens to be SMP safe so no need to
* grab master kernel lock even in this case.
*/
notify_parent
(
current
,
SIGCHLD
);
schedule
();
if
(
!
(
signr
=
current
->
exit_code
))
continue
;
current
->
exit_code
=
0
;
if
(
signr
==
SIGSTOP
)
continue
;
/* Update the siginfo structure. Is this good? */
if
(
signr
!=
info
.
si_signo
)
{
info
.
si_signo
=
signr
;
info
.
si_errno
=
0
;
info
.
si_code
=
SI_USER
;
info
.
si_pid
=
current
->
parent
->
pid
;
info
.
si_uid
=
current
->
parent
->
uid
;
}
/* If the (new) signal is now blocked, requeue it. */
if
(
sigismember
(
&
current
->
blocked
,
signr
))
{
send_sig_info
(
signr
,
&
info
,
current
);
continue
;
}
}
ka
=
&
current
->
sig
->
action
[
signr
-
1
];
if
(
ka
->
sa
.
sa_handler
==
SIG_IGN
)
{
if
(
signr
!=
SIGCHLD
)
continue
;
/* sys_wait4() grabs the master kernel lock, so
* we need not do so, that sucker should be
* threaded and would not be that difficult to
* do anyways.
*/
while
(
sys_wait4
(
-
1
,
NULL
,
WNOHANG
,
NULL
)
>
0
)
;
continue
;
}
if
(
ka
->
sa
.
sa_handler
==
SIG_DFL
)
{
unsigned
long
exit_code
=
signr
;
if
(
current
->
pid
==
1
)
continue
;
switch
(
signr
)
{
case
SIGCONT
:
case
SIGCHLD
:
case
SIGWINCH
:
case
SIGURG
:
continue
;
case
SIGTSTP
:
case
SIGTTIN
:
case
SIGTTOU
:
/* The operations performed by
* is_orphaned_pgrp() are protected by
* the tasklist_lock.
*/
if
(
is_orphaned_pgrp
(
current
->
pgrp
))
continue
;
case
SIGSTOP
:
{
struct
signal_struct
*
sig
;
set_current_state
(
TASK_STOPPED
);
current
->
exit_code
=
signr
;
sig
=
current
->
parent
->
sig
;
if
(
sig
&&
!
(
sig
->
action
[
SIGCHLD
-
1
].
sa
.
sa_flags
&
SA_NOCLDSTOP
))
notify_parent
(
current
,
SIGCHLD
);
schedule
();
continue
;
}
case
SIGQUIT
:
case
SIGILL
:
case
SIGTRAP
:
case
SIGABRT
:
case
SIGFPE
:
case
SIGSEGV
:
case
SIGBUS
:
case
SIGSYS
:
case
SIGXCPU
:
case
SIGXFSZ
:
if
(
do_coredump
(
signr
,
exit_code
,
regs
))
exit_code
|=
0x80
;
/* FALLTHRU */
default:
sig_exit
(
signr
,
exit_code
,
&
info
);
/* NOT REACHED */
}
}
if
(
restart_syscall
)
syscall_restart
(
orig_i0
,
regs
,
&
ka
->
sa
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
&
cookie
);
if
(
signr
>
0
)
{
struct
k_sigaction
*
ka
;
ka
=
&
current
->
sighand
->
action
[
signr
-
1
];
if
(
cookie
.
restart_syscall
)
syscall_restart
(
cookie
.
orig_i0
,
regs
,
&
ka
->
sa
);
handle_signal
(
signr
,
ka
,
&
info
,
oldset
,
regs
,
svr4_signal
);
return
1
;
}
if
(
restart_syscall
&&
if
(
cookie
.
restart_syscall
&&
(
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOHAND
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTSYS
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOINTR
))
{
/* replay the system call when we are done */
regs
->
u_regs
[
UREG_I0
]
=
orig_i0
;
regs
->
u_regs
[
UREG_I0
]
=
cookie
.
orig_i0
;
regs
->
pc
-=
4
;
regs
->
npc
-=
4
;
}
if
(
restart_syscall
&&
if
(
cookie
.
restart_syscall
&&
regs
->
u_regs
[
UREG_I0
]
==
ERESTART_RESTARTBLOCK
)
{
regs
->
u_regs
[
UREG_G1
]
=
__NR_restart_syscall
;
regs
->
pc
-=
4
;
...
...
arch/sparc/mm/init.c
View file @
2c5c4f1f
...
...
@@ -525,7 +525,7 @@ void free_initrd_mem(unsigned long start, unsigned long end)
}
#endif
void
flush_page_to_ram
(
struct
page
*
page
)
void
sparc_
flush_page_to_ram
(
struct
page
*
page
)
{
unsigned
long
vaddr
=
(
unsigned
long
)
page_address
(
page
);
...
...
arch/sparc64/kernel/init_task.c
View file @
2c5c4f1f
...
...
@@ -9,6 +9,7 @@
static
struct
fs_struct
init_fs
=
INIT_FS
;
static
struct
files_struct
init_files
=
INIT_FILES
;
static
struct
signal_struct
init_signals
=
INIT_SIGNALS
(
init_signals
);
static
struct
sighand_struct
init_sighand
=
INIT_SIGHAND
(
init_sighand
);
struct
mm_struct
init_mm
=
INIT_MM
(
init_mm
);
/* .text section in head.S is aligned at 2 page boundry and this gets linked
...
...
arch/sparc64/kernel/ioctl32.c
View file @
2c5c4f1f
...
...
@@ -4285,6 +4285,7 @@ COMPATIBLE_IOCTL(TCSETA)
COMPATIBLE_IOCTL
(
TCSETAW
)
COMPATIBLE_IOCTL
(
TCSETAF
)
COMPATIBLE_IOCTL
(
TCSBRK
)
COMPATIBLE_IOCTL
(
TCSBRKP
)
COMPATIBLE_IOCTL
(
TCXONC
)
COMPATIBLE_IOCTL
(
TCFLSH
)
COMPATIBLE_IOCTL
(
TCGETS
)
...
...
arch/sparc64/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -603,8 +603,12 @@ static int do_signal(sigset_t *oldset, struct pt_regs * regs,
unsigned
long
orig_i0
,
int
restart_syscall
)
{
siginfo_t
info
;
struct
k_sigaction
*
ka
;
struct
signal_deliver_cookie
cookie
;
int
signr
;
cookie
.
restart_syscall
=
restart_syscall
;
cookie
.
orig_i0
=
orig_i0
;
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
...
...
@@ -612,135 +616,31 @@ static int do_signal(sigset_t *oldset, struct pt_regs * regs,
if
(
test_thread_flag
(
TIF_32BIT
))
{
extern
int
do_signal32
(
sigset_t
*
,
struct
pt_regs
*
,
unsigned
long
,
int
);
return
do_signal32
(
oldset
,
regs
,
orig_i0
,
restart_syscall
);
return
do_signal32
(
oldset
,
regs
,
orig_i0
,
cookie
.
restart_syscall
);
}
#endif
for
(;;)
{
sigset_t
*
mask
=
&
current
->
blocked
;
unsigned
long
signr
=
0
;
spin_lock_irq
(
&
current
->
sighand
->
siglock
);
signr
=
dequeue_signal
(
mask
,
&
info
);
spin_unlock_irq
(
&
current
->
sighand
->
siglock
);
if
(
!
signr
)
break
;
if
((
current
->
ptrace
&
PT_PTRACED
)
&&
signr
!=
SIGKILL
)
{
/* Do the syscall restart before we let the debugger
* look at the child registers.
*/
if
(
restart_syscall
&&
(
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOHAND
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTSYS
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOINTR
))
{
/* replay the system call when we are done */
regs
->
u_regs
[
UREG_I0
]
=
orig_i0
;
regs
->
tpc
-=
4
;
regs
->
tnpc
-=
4
;
restart_syscall
=
0
;
}
if
(
restart_syscall
&&
regs
->
u_regs
[
UREG_I0
]
==
ERESTART_RESTARTBLOCK
)
{
regs
->
u_regs
[
UREG_G1
]
=
__NR_restart_syscall
;
regs
->
tpc
-=
4
;
regs
->
tnpc
-=
4
;
restart_syscall
=
0
;
}
current
->
exit_code
=
signr
;
set_current_state
(
TASK_STOPPED
);
notify_parent
(
current
,
SIGCHLD
);
schedule
();
if
(
!
(
signr
=
current
->
exit_code
))
continue
;
current
->
exit_code
=
0
;
if
(
signr
==
SIGSTOP
)
continue
;
/* Update the siginfo structure. Is this good? */
if
(
signr
!=
info
.
si_signo
)
{
info
.
si_signo
=
signr
;
info
.
si_errno
=
0
;
info
.
si_code
=
SI_USER
;
info
.
si_pid
=
current
->
parent
->
pid
;
info
.
si_uid
=
current
->
parent
->
uid
;
}
/* If the (new) signal is now blocked, requeue it. */
if
(
sigismember
(
&
current
->
blocked
,
signr
))
{
send_sig_info
(
signr
,
&
info
,
current
);
continue
;
}
}
ka
=
&
current
->
sig
->
action
[
signr
-
1
];
if
(
ka
->
sa
.
sa_handler
==
SIG_IGN
)
{
if
(
signr
!=
SIGCHLD
)
continue
;
/* sys_wait4() grabs the master kernel lock, so
* we need not do so, that sucker should be
* threaded and would not be that difficult to
* do anyways.
*/
while
(
sys_wait4
(
-
1
,
NULL
,
WNOHANG
,
NULL
)
>
0
)
;
continue
;
}
if
(
ka
->
sa
.
sa_handler
==
SIG_DFL
)
{
unsigned
long
exit_code
=
signr
;
if
(
current
->
pid
==
1
)
continue
;
switch
(
signr
)
{
case
SIGCONT
:
case
SIGCHLD
:
case
SIGWINCH
:
case
SIGURG
:
continue
;
case
SIGTSTP
:
case
SIGTTIN
:
case
SIGTTOU
:
if
(
is_orphaned_pgrp
(
current
->
pgrp
))
continue
;
case
SIGSTOP
:
{
struct
signal_struct
*
sig
;
set_current_state
(
TASK_STOPPED
);
current
->
exit_code
=
signr
;
sig
=
current
->
parent
->
sig
;
if
(
sig
&&
!
(
sig
->
action
[
SIGCHLD
-
1
].
sa
.
sa_flags
&
SA_NOCLDSTOP
))
notify_parent
(
current
,
SIGCHLD
);
schedule
();
continue
;
}
case
SIGQUIT
:
case
SIGILL
:
case
SIGTRAP
:
case
SIGABRT
:
case
SIGFPE
:
case
SIGSEGV
:
case
SIGBUS
:
case
SIGSYS
:
case
SIGXCPU
:
case
SIGXFSZ
:
if
(
do_coredump
(
signr
,
exit_code
,
regs
))
exit_code
|=
0x80
;
/* FALLTHRU */
default:
sig_exit
(
signr
,
exit_code
,
&
info
);
/* NOT REACHED */
}
}
if
(
restart_syscall
)
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
&
cookie
);
if
(
signr
>
0
)
{
struct
k_sigaction
*
ka
;
ka
=
&
current
->
sighand
->
action
[
signr
-
1
];
if
(
cookie
.
restart_syscall
)
syscall_restart
(
orig_i0
,
regs
,
&
ka
->
sa
);
handle_signal
(
signr
,
ka
,
&
info
,
oldset
,
regs
);
return
1
;
}
if
(
restart_syscall
&&
if
(
cookie
.
restart_syscall
&&
(
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOHAND
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTSYS
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOINTR
))
{
/* replay the system call when we are done */
regs
->
u_regs
[
UREG_I0
]
=
orig_i0
;
regs
->
u_regs
[
UREG_I0
]
=
cookie
.
orig_i0
;
regs
->
tpc
-=
4
;
regs
->
tnpc
-=
4
;
}
if
(
restart_syscall
&&
if
(
cookie
.
restart_syscall
&&
regs
->
u_regs
[
UREG_I0
]
==
ERESTART_RESTARTBLOCK
)
{
regs
->
u_regs
[
UREG_G1
]
=
__NR_restart_syscall
;
regs
->
tpc
-=
4
;
...
...
arch/sparc64/kernel/signal32.c
View file @
2c5c4f1f
...
...
@@ -1279,136 +1279,34 @@ static inline void syscall_restart32(unsigned long orig_i0, struct pt_regs *regs
int
do_signal32
(
sigset_t
*
oldset
,
struct
pt_regs
*
regs
,
unsigned
long
orig_i0
,
int
restart_syscall
)
{
struct
k_sigaction
*
ka
;
siginfo_t
info
;
struct
signal_deliver_cookie
cookie
;
int
signr
;
int
svr4_signal
=
current
->
personality
==
PER_SVR4
;
for
(;;)
{
sigset_t
*
mask
=
&
current
->
blocked
;
unsigned
long
signr
=
0
;
spin_lock_irq
(
&
current
->
sighand
->
siglock
);
signr
=
dequeue_signal
(
mask
,
&
info
);
spin_unlock_irq
(
&
current
->
sighand
->
siglock
);
if
(
!
signr
)
break
;
cookie
.
restart_syscall
=
restart_syscall
;
cookie
.
orig_i0
=
orig_i0
;
if
((
current
->
ptrace
&
PT_PTRACED
)
&&
signr
!=
SIGKILL
)
{
/* Do the syscall restart before we let the debugger
* look at the child registers.
*/
if
(
restart_syscall
&&
(
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOHAND
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTSYS
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOINTR
))
{
/* replay the system call when we are done */
regs
->
u_regs
[
UREG_I0
]
=
orig_i0
;
regs
->
tpc
-=
4
;
regs
->
tnpc
-=
4
;
restart_syscall
=
0
;
}
if
(
restart_syscall
&&
regs
->
u_regs
[
UREG_I0
]
==
ERESTART_RESTARTBLOCK
)
{
regs
->
u_regs
[
UREG_G1
]
=
__NR_restart_syscall
;
regs
->
tpc
-=
4
;
regs
->
tnpc
-=
4
;
restart_syscall
=
0
;
}
current
->
exit_code
=
signr
;
set_current_state
(
TASK_STOPPED
);
notify_parent
(
current
,
SIGCHLD
);
schedule
();
if
(
!
(
signr
=
current
->
exit_code
))
continue
;
current
->
exit_code
=
0
;
if
(
signr
==
SIGSTOP
)
continue
;
/* Update the siginfo structure. Is this good? */
if
(
signr
!=
info
.
si_signo
)
{
info
.
si_signo
=
signr
;
info
.
si_errno
=
0
;
info
.
si_code
=
SI_USER
;
info
.
si_pid
=
current
->
parent
->
pid
;
info
.
si_uid
=
current
->
parent
->
uid
;
}
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
&
cookie
);
if
(
signr
>
0
)
{
struct
k_sigaction
*
ka
;
/* If the (new) signal is now blocked, requeue it. */
if
(
sigismember
(
&
current
->
blocked
,
signr
))
{
send_sig_info
(
signr
,
&
info
,
current
);
continue
;
}
}
ka
=
&
current
->
sig
->
action
[
signr
-
1
];
if
(
ka
->
sa
.
sa_handler
==
SIG_IGN
)
{
if
(
signr
!=
SIGCHLD
)
continue
;
/* sys_wait4() grabs the master kernel lock, so
* we need not do so, that sucker should be
* threaded and would not be that difficult to
* do anyways.
*/
while
(
sys_wait4
(
-
1
,
NULL
,
WNOHANG
,
NULL
)
>
0
)
;
continue
;
}
if
(
ka
->
sa
.
sa_handler
==
SIG_DFL
)
{
unsigned
long
exit_code
=
signr
;
if
(
current
->
pid
==
1
)
continue
;
switch
(
signr
)
{
case
SIGCONT
:
case
SIGCHLD
:
case
SIGWINCH
:
case
SIGURG
:
continue
;
case
SIGTSTP
:
case
SIGTTIN
:
case
SIGTTOU
:
if
(
is_orphaned_pgrp
(
current
->
pgrp
))
continue
;
case
SIGSTOP
:
{
struct
signal_struct
*
sig
;
set_current_state
(
TASK_STOPPED
);
current
->
exit_code
=
signr
;
sig
=
current
->
parent
->
sig
;
if
(
sig
&&
!
(
sig
->
action
[
SIGCHLD
-
1
].
sa
.
sa_flags
&
SA_NOCLDSTOP
))
notify_parent
(
current
,
SIGCHLD
);
schedule
();
continue
;
}
case
SIGQUIT
:
case
SIGILL
:
case
SIGTRAP
:
case
SIGABRT
:
case
SIGFPE
:
case
SIGSEGV
:
case
SIGBUS
:
case
SIGSYS
:
case
SIGXCPU
:
case
SIGXFSZ
:
if
(
do_coredump
(
signr
,
exit_code
,
regs
))
exit_code
|=
0x80
;
/* FALLTHRU */
default:
sig_exit
(
signr
,
exit_code
,
&
info
);
/* NOT REACHED */
}
}
if
(
restart_syscall
)
ka
=
&
current
->
sighand
->
action
[
signr
-
1
];
if
(
cookie
.
restart_syscall
)
syscall_restart32
(
orig_i0
,
regs
,
&
ka
->
sa
);
handle_signal32
(
signr
,
ka
,
&
info
,
oldset
,
regs
,
svr4_signal
);
return
1
;
}
if
(
restart_syscall
&&
if
(
cookie
.
restart_syscall
&&
(
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOHAND
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTSYS
||
regs
->
u_regs
[
UREG_I0
]
==
ERESTARTNOINTR
))
{
/* replay the system call when we are done */
regs
->
u_regs
[
UREG_I0
]
=
orig_i0
;
regs
->
u_regs
[
UREG_I0
]
=
cookie
.
orig_i0
;
regs
->
tpc
-=
4
;
regs
->
tnpc
-=
4
;
}
if
(
restart_syscall
&&
if
(
cookie
.
restart_syscall
&&
regs
->
u_regs
[
UREG_I0
]
==
ERESTART_RESTARTBLOCK
)
{
regs
->
u_regs
[
UREG_G1
]
=
__NR_restart_syscall
;
regs
->
tpc
-=
4
;
...
...
arch/um/kernel/signal_kern.c
View file @
2c5c4f1f
...
...
@@ -136,7 +136,7 @@ static int kern_do_signal(struct pt_regs *regs, sigset_t *oldset, int error)
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
sig
=
get_signal_to_deliver
(
&
info
,
regs
);
sig
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
sig
==
0
)
return
(
0
);
...
...
arch/v850/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -506,7 +506,7 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset)
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
/* Whee! Actually deliver the signal. */
handle_signal
(
signr
,
&
info
,
oldset
,
regs
);
...
...
arch/x86_64/kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -437,7 +437,7 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset)
if
(
!
oldset
)
oldset
=
&
current
->
blocked
;
signr
=
get_signal_to_deliver
(
&
info
,
regs
);
signr
=
get_signal_to_deliver
(
&
info
,
regs
,
NULL
);
if
(
signr
>
0
)
{
/* Reenable any watchpoints before delivering the
* signal to user space. The processor register will
...
...
drivers/serial/sunzilog.c
View file @
2c5c4f1f
...
...
@@ -488,6 +488,8 @@ static void sunzilog_transmit_chars(struct uart_sunzilog_port *up,
return
;
}
up
->
flags
&=
~
SUNZILOG_FLAG_TX_ACTIVE
;
if
(
ZS_REGS_HELD
(
up
))
{
__load_zsregs
(
channel
,
up
->
curregs
);
up
->
flags
&=
~
SUNZILOG_FLAG_REGS_HELD
;
...
...
@@ -495,15 +497,11 @@ static void sunzilog_transmit_chars(struct uart_sunzilog_port *up,
if
(
ZS_TX_STOPPED
(
up
))
{
up
->
flags
&=
~
SUNZILOG_FLAG_TX_STOPPED
;
sbus_writeb
(
RES_Tx_P
,
&
channel
->
control
);
ZSDELAY
();
ZS_WSYNC
(
channel
);
return
;
goto
ack_tx_int
;
}
if
(
up
->
port
.
x_char
)
{
up
->
flags
|=
SUNZILOG_FLAG_TX_ACTIVE
;
sbus_writeb
(
up
->
port
.
x_char
,
&
channel
->
data
);
ZSDELAY
();
ZS_WSYNC
(
channel
);
...
...
@@ -516,9 +514,14 @@ static void sunzilog_transmit_chars(struct uart_sunzilog_port *up,
if
(
up
->
port
.
info
==
NULL
)
goto
ack_tx_int
;
xmit
=
&
up
->
port
.
info
->
xmit
;
if
(
uart_circ_empty
(
xmit
)
||
uart_tx_stopped
(
&
up
->
port
))
if
(
uart_circ_empty
(
xmit
))
{
uart_write_wakeup
(
&
up
->
port
);
goto
ack_tx_int
;
}
if
(
uart_tx_stopped
(
&
up
->
port
))
goto
ack_tx_int
;
up
->
flags
|=
SUNZILOG_FLAG_TX_ACTIVE
;
sbus_writeb
(
xmit
->
buf
[
xmit
->
tail
],
&
channel
->
data
);
ZSDELAY
();
ZS_WSYNC
(
channel
);
...
...
@@ -529,9 +532,6 @@ static void sunzilog_transmit_chars(struct uart_sunzilog_port *up,
if
(
uart_circ_chars_pending
(
xmit
)
<
WAKEUP_CHARS
)
uart_write_wakeup
(
&
up
->
port
);
if
(
uart_circ_empty
(
xmit
))
goto
ack_tx_int
;
return
;
ack_tx_int:
...
...
@@ -725,6 +725,9 @@ static void sunzilog_stop_rx(struct uart_port *port)
struct
zilog_channel
*
channel
;
unsigned
long
flags
;
if
(
ZS_IS_CONS
(
up
))
return
;
spin_lock_irqsave
(
&
port
->
lock
,
flags
);
channel
=
ZILOG_CHANNEL_FROM_PORT
(
port
);
...
...
@@ -1588,6 +1591,7 @@ static void __init sunzilog_init_hw(void)
}
else
{
/* Normal serial TTY. */
up
->
parity_mask
=
0xff
;
up
->
curregs
[
R1
]
=
EXT_INT_ENAB
|
INT_ALL_Rx
|
TxINT_ENAB
;
up
->
curregs
[
R4
]
=
PAR_EVEN
|
X16CLK
|
SB1
;
up
->
curregs
[
R3
]
=
RxENAB
|
Rx8
;
up
->
curregs
[
R5
]
=
TxENAB
|
Tx8
;
...
...
fs/nfs/nfs3xdr.c
View file @
2c5c4f1f
...
...
@@ -146,7 +146,7 @@ xdr_decode_time3(u32 *p, struct timespec *timep)
static
u32
*
xdr_decode_fattr
(
u32
*
p
,
struct
nfs_fattr
*
fattr
)
{
unsigned
int
type
;
unsigned
int
type
,
major
,
minor
;
int
fmode
;
type
=
ntohl
(
*
p
++
);
...
...
@@ -160,9 +160,12 @@ xdr_decode_fattr(u32 *p, struct nfs_fattr *fattr)
fattr
->
gid
=
ntohl
(
*
p
++
);
p
=
xdr_decode_hyper
(
p
,
&
fattr
->
size
);
p
=
xdr_decode_hyper
(
p
,
&
fattr
->
du
.
nfs3
.
used
);
/* Turn remote device info into Linux-specific dev_t */
fattr
->
rdev
=
ntohl
(
*
p
++
)
<<
MINORBITS
;
fattr
->
rdev
|=
ntohl
(
*
p
++
)
&
MINORMASK
;
major
=
ntohl
(
*
p
++
);
minor
=
ntohl
(
*
p
++
);
fattr
->
rdev
=
MKDEV
(
major
,
minor
);
p
=
xdr_decode_hyper
(
p
,
&
fattr
->
fsid_u
.
nfs3
);
p
=
xdr_decode_hyper
(
p
,
&
fattr
->
fileid
);
p
=
xdr_decode_time3
(
p
,
&
fattr
->
atime
);
...
...
@@ -412,8 +415,8 @@ nfs3_xdr_mknodargs(struct rpc_rqst *req, u32 *p, struct nfs3_mknodargs *args)
*
p
++
=
htonl
(
args
->
type
);
p
=
xdr_encode_sattr
(
p
,
args
->
sattr
);
if
(
args
->
type
==
NF3CHR
||
args
->
type
==
NF3BLK
)
{
*
p
++
=
htonl
(
args
->
rdev
>>
MINORBITS
);
*
p
++
=
htonl
(
args
->
rdev
&
MINORMASK
);
*
p
++
=
htonl
(
MAJOR
(
args
->
rdev
)
);
*
p
++
=
htonl
(
MINOR
(
args
->
rdev
)
);
}
req
->
rq_slen
=
xdr_adjust_iovec
(
req
->
rq_svec
,
p
);
...
...
fs/nfs/nfs4xdr.c
View file @
2c5c4f1f
...
...
@@ -1385,13 +1385,14 @@ decode_getattr(struct xdr_stream *xdr, struct nfs4_getattr *getattr)
dprintk
(
"read_attrs: gid=%d
\n
"
,
(
int
)
nfp
->
gid
);
}
if
(
bmval1
&
FATTR4_WORD1_RAWDEV
)
{
READ_BUF
(
8
);
len
+=
8
;
READ32
(
dummy32
);
nfp
->
rdev
=
(
dummy32
<<
MINORBITS
);
READ32
(
dummy32
);
nfp
->
rdev
|=
(
dummy32
&
MINORMASK
);
dprintk
(
"read_attrs: rdev=%d
\n
"
,
nfp
->
rdev
);
uint32_t
major
,
minor
;
READ_BUF
(
8
);
len
+=
8
;
READ32
(
major
);
READ32
(
minor
);
nfp
->
rdev
=
MKDEV
(
major
,
minor
);
dprintk
(
"read_attrs: rdev=0x%x
\n
"
,
nfp
->
rdev
);
}
if
(
bmval1
&
FATTR4_WORD1_SPACE_AVAIL
)
{
READ_BUF
(
8
);
...
...
include/asm-alpha/signal.h
View file @
2c5c4f1f
...
...
@@ -186,6 +186,7 @@ struct sigstack {
#ifdef __KERNEL__
#include <asm/sigcontext.h>
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#define HAVE_ARCH_SYS_PAUSE
#endif
...
...
include/asm-cris/signal.h
View file @
2c5c4f1f
...
...
@@ -181,6 +181,7 @@ typedef struct sigaltstack {
/* here we could define asm-optimized sigaddset, sigdelset etc. operations.
* if we don't, generic ones are used from linux/signal.h
*/
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* __KERNEL__ */
...
...
include/asm-i386/signal.h
View file @
2c5c4f1f
...
...
@@ -217,6 +217,7 @@ static __inline__ int sigfindinword(unsigned long word)
struct
pt_regs
;
extern
int
FASTCALL
(
do_signal
(
struct
pt_regs
*
regs
,
sigset_t
*
oldset
));
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* __KERNEL__ */
...
...
include/asm-ia64/signal.h
View file @
2c5c4f1f
...
...
@@ -166,6 +166,7 @@ struct k_sigaction {
# include <asm/sigcontext.h>
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#define HAVE_ARCH_SYS_PAUSE
#endif
/* __KERNEL__ */
...
...
include/asm-m68knommu/signal.h
View file @
2c5c4f1f
...
...
@@ -176,6 +176,8 @@ typedef struct sigaltstack {
#include <asm/sigcontext.h>
#undef __HAVE_ARCH_SIG_BITOPS
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* __KERNEL__ */
#endif
/* _M68KNOMMU_SIGNAL_H */
include/asm-mips/signal.h
View file @
2c5c4f1f
...
...
@@ -169,6 +169,8 @@ typedef struct sigaltstack {
#define _BRK_THREADBP 11
/* For threads, user bp (used by debuggers) */
#define BRK_MULOVF 1023
/* Multiply overflow */
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* defined (__KERNEL__) */
#endif
/* _ASM_SIGNAL_H */
include/asm-mips64/signal.h
View file @
2c5c4f1f
...
...
@@ -168,6 +168,9 @@ typedef struct sigaltstack {
#define BRK_NORLD 10
/* No rld found - not used by Linux/MIPS */
#define _BRK_THREADBP 11
/* For threads, user bp (used by debuggers) */
#define BRK_MULOVF 1023
/* Multiply overflow */
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* defined (__KERNEL__) || defined (__USE_MISC) */
#endif
/* !defined (_ASM_SIGNAL_H) */
include/asm-ppc/signal.h
View file @
2c5c4f1f
...
...
@@ -150,6 +150,7 @@ typedef struct sigaltstack {
#ifdef __KERNEL__
#include <asm/sigcontext.h>
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* __KERNEL__ */
#endif
include/asm-ppc64/signal.h
View file @
2c5c4f1f
...
...
@@ -143,4 +143,6 @@ typedef struct sigaltstack {
size_t
ss_size
;
}
stack_t
;
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* _ASMPPC64_SIGNAL_H */
include/asm-s390/signal.h
View file @
2c5c4f1f
...
...
@@ -175,6 +175,8 @@ struct sigaction {
#define sa_handler _u._sa_handler
#define sa_sigaction _u._sa_sigaction
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* __KERNEL__ */
typedef
struct
sigaltstack
{
...
...
include/asm-s390x/signal.h
View file @
2c5c4f1f
...
...
@@ -175,6 +175,8 @@ struct sigaction {
#define sa_handler _u._sa_handler
#define sa_sigaction _u._sa_sigaction
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* __KERNEL__ */
typedef
struct
sigaltstack
{
...
...
include/asm-sh/signal.h
View file @
2c5c4f1f
...
...
@@ -165,6 +165,8 @@ typedef struct sigaltstack {
#ifdef __KERNEL__
#include <asm/sigcontext.h>
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* __KERNEL__ */
#endif
/* __ASM_SH_SIGNAL_H */
include/asm-sparc/cacheflush.h
View file @
2c5c4f1f
...
...
@@ -62,8 +62,9 @@ BTFIXUPDEF_CALL(void, flush_sig_insns, struct mm_struct *, unsigned long)
#define __flush_page_to_ram(addr) BTFIXUP_CALL(__flush_page_to_ram)(addr)
#define flush_sig_insns(mm,insn_addr) BTFIXUP_CALL(flush_sig_insns)(mm,insn_addr)
extern
void
flush_page_to_ram
(
struct
page
*
page
);
extern
void
sparc_
flush_page_to_ram
(
struct
page
*
page
);
#define flush_dcache_page(page) do { } while (0)
#define flush_page_to_ram(page) do { } while (0)
#define flush_dcache_page(page) sparc_flush_page_to_ram(page)
#endif
/* _SPARC_CACHEFLUSH_H */
include/asm-sparc/page.h
View file @
2c5c4f1f
...
...
@@ -31,8 +31,14 @@
#define clear_page(page) memset((void *)(page), 0, PAGE_SIZE)
#define copy_page(to,from) memcpy((void *)(to), (void *)(from), PAGE_SIZE)
#define clear_user_page(addr, vaddr, page) clear_page(addr)
#define copy_user_page(to, from, vaddr, page) copy_page(to, from)
#define clear_user_page(addr, vaddr, page) \
do { clear_page(addr); \
sparc_flush_page_to_ram(page); \
} while (0)
#define copy_user_page(to, from, vaddr, page) \
do { copy_page(to, from); \
sparc_flush_page_to_ram(page); \
} while (0)
/* The following structure is used to hold the physical
* memory configuration of the machine. This is filled in
...
...
include/asm-sparc/signal.h
View file @
2c5c4f1f
...
...
@@ -216,7 +216,32 @@ typedef struct sigaltstack {
size_t
ss_size
;
}
stack_t
;
#define HAVE_ARCH_GET_SIGNAL_TO_DELIVER
struct
sparc_deliver_cookie
{
int
restart_syscall
;
unsigned
long
orig_i0
;
};
#define ptrace_signal_deliver(REGS, COOKIE) \
do { struct sparc_deliver_cookie *cp = (COOKIE); \
if (cp->restart_syscall && \
(regs->u_regs[UREG_I0] == ERESTARTNOHAND || \
regs->u_regs[UREG_I0] == ERESTARTSYS || \
regs->u_regs[UREG_I0] == ERESTARTNOINTR)) { \
/* replay the system call when we are done */
\
regs->u_regs[UREG_I0] = cp->orig_i0; \
regs->pc -= 4; \
regs->npc -= 4; \
cp->restart_syscall = 0; \
} \
if (cp->restart_syscall && \
regs->u_regs[UREG_I0] == ERESTART_RESTARTBLOCK) { \
regs->u_regs[UREG_G1] = __NR_restart_syscall; \
regs->pc -= 4; \
regs->npc -= 4; \
cp->restart_syscall = 0; \
} \
} while (0)
#endif
/* !(__ASSEMBLY__) */
...
...
include/asm-sparc64/signal.h
View file @
2c5c4f1f
...
...
@@ -245,7 +245,32 @@ typedef struct sigaltstack32 {
compat_size_t
ss_size
;
}
stack_t32
;
#define HAVE_ARCH_GET_SIGNAL_TO_DELIVER
struct
signal_deliver_cookie
{
int
restart_syscall
;
unsigned
long
orig_i0
;
};
#define ptrace_signal_deliver(REGS, COOKIE) \
do { struct signal_deliver_cookie *cp = (COOKIE); \
if (cp->restart_syscall && \
(regs->u_regs[UREG_I0] == ERESTARTNOHAND || \
regs->u_regs[UREG_I0] == ERESTARTSYS || \
regs->u_regs[UREG_I0] == ERESTARTNOINTR)) { \
/* replay the system call when we are done */
\
regs->u_regs[UREG_I0] = cp->orig_i0; \
regs->tpc -= 4; \
regs->tnpc -= 4; \
cp->restart_syscall = 0; \
} \
if (cp->restart_syscall && \
regs->u_regs[UREG_I0] == ERESTART_RESTARTBLOCK) { \
regs->u_regs[UREG_G1] = __NR_restart_syscall; \
regs->tpc -= 4; \
regs->tnpc -= 4; \
cp->restart_syscall = 0; \
} \
} while (0)
#define HAVE_ARCH_SYS_PAUSE
#endif
...
...
include/asm-v850/signal.h
View file @
2c5c4f1f
...
...
@@ -188,6 +188,8 @@ typedef struct sigaltstack {
#include <asm/sigcontext.h>
#undef __HAVE_ARCH_SIG_BITOPS
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* __KERNEL__ */
#endif
/* __V850_SIGNAL_H__ */
include/asm-x86_64/signal.h
View file @
2c5c4f1f
...
...
@@ -200,6 +200,9 @@ extern __inline__ int sigfindinword(unsigned long word)
}
#endif
#endif
#define ptrace_signal_deliver(regs, cookie) do { } while (0)
#endif
/* __KERNEL__ */
#endif
include/linux/signal.h
View file @
2c5c4f1f
...
...
@@ -208,7 +208,7 @@ extern int sigprocmask(int, sigset_t *, sigset_t *);
#ifndef HAVE_ARCH_GET_SIGNAL_TO_DELIVER
struct
pt_regs
;
extern
int
get_signal_to_deliver
(
siginfo_t
*
info
,
struct
pt_regs
*
regs
);
extern
int
get_signal_to_deliver
(
siginfo_t
*
info
,
struct
pt_regs
*
regs
,
void
*
cookie
);
#endif
#endif
/* __KERNEL__ */
...
...
include/net/af_unix.h
View file @
2c5c4f1f
...
...
@@ -13,9 +13,30 @@ extern rwlock_t unix_table_lock;
extern
atomic_t
unix_tot_inflight
;
static
inline
unix_socket
*
first_unix_socket
(
int
*
i
)
{
for
(
*
i
=
0
;
*
i
<=
UNIX_HASH_SIZE
;
(
*
i
)
++
)
{
if
(
unix_socket_table
[
*
i
])
return
unix_socket_table
[
*
i
];
}
return
NULL
;
}
static
inline
unix_socket
*
next_unix_socket
(
int
*
i
,
unix_socket
*
s
)
{
/* More in this chain? */
if
(
s
->
next
)
return
s
->
next
;
/* Look for next non-empty chain. */
for
((
*
i
)
++
;
*
i
<=
UNIX_HASH_SIZE
;
(
*
i
)
++
)
{
if
(
unix_socket_table
[
*
i
])
return
unix_socket_table
[
*
i
];
}
return
NULL
;
}
#define forall_unix_sockets(i, s)
for (i=0; i<=UNIX_HASH_SIZE; i++)
\
for (s=unix_socket_table[i]; s; s=s->next
)
#define forall_unix_sockets(i, s) \
for (s = first_unix_socket(&(i)); s; s = next_unix_socket(&(i),(s))
)
struct
unix_address
{
...
...
kernel/signal.c
View file @
2c5c4f1f
...
...
@@ -1405,7 +1405,7 @@ do_signal_stop(int signr)
#ifndef HAVE_ARCH_GET_SIGNAL_TO_DELIVER
int
get_signal_to_deliver
(
siginfo_t
*
info
,
struct
pt_regs
*
regs
)
int
get_signal_to_deliver
(
siginfo_t
*
info
,
struct
pt_regs
*
regs
,
void
*
cookie
)
{
sigset_t
*
mask
=
&
current
->
blocked
;
...
...
@@ -1443,6 +1443,8 @@ int get_signal_to_deliver(siginfo_t *info, struct pt_regs *regs)
break
;
if
((
current
->
ptrace
&
PT_PTRACED
)
&&
signr
!=
SIGKILL
)
{
ptrace_signal_deliver
(
regs
,
cookie
);
/*
* If there is a group stop in progress,
* we must participate in the bookkeeping.
...
...
net/econet/af_econet.c
View file @
2c5c4f1f
...
...
@@ -338,6 +338,7 @@ static int econet_sendmsg(struct kiocb *iocb, struct socket *sock,
eb
=
(
struct
ec_cb
*
)
&
skb
->
cb
;
/* BUG: saddr may be NULL */
eb
->
cookie
=
saddr
->
cookie
;
eb
->
sec
=
*
saddr
;
eb
->
sent
=
ec_tx_done
;
...
...
net/ipv4/netfilter/arptable_filter.c
View file @
2c5c4f1f
...
...
@@ -37,10 +37,10 @@ static struct
}
initial_table
__initdata
=
{
{
"filter"
,
FILTER_VALID_HOOKS
,
3
,
sizeof
(
struct
arpt_standard
)
*
2
+
sizeof
(
struct
arpt_error
),
{
[
NF_ARP_IN
]
0
,
[
NF_ARP_OUT
]
sizeof
(
struct
arpt_standard
)
},
{
[
NF_ARP_IN
]
0
,
[
NF_ARP_OUT
]
sizeof
(
struct
arpt_standard
),
},
{
[
NF_ARP_IN
]
=
0
,
[
NF_ARP_OUT
]
=
sizeof
(
struct
arpt_standard
)
},
{
[
NF_ARP_IN
]
=
0
,
[
NF_ARP_OUT
]
=
sizeof
(
struct
arpt_standard
),
},
0
,
NULL
,
{
}
},
{
/* ARP_IN */
...
...
net/ipv4/netfilter/ip_nat_ftp.c
View file @
2c5c4f1f
...
...
@@ -160,10 +160,10 @@ static int (*mangle[])(struct sk_buff **, u_int32_t, u_int16_t,
unsigned
int
,
struct
ip_conntrack
*
,
enum
ip_conntrack_info
)
=
{
[
IP_CT_FTP_PORT
]
mangle_rfc959_packet
,
[
IP_CT_FTP_PASV
]
mangle_rfc959_packet
,
[
IP_CT_FTP_EPRT
]
mangle_eprt_packet
,
[
IP_CT_FTP_EPSV
]
mangle_epsv_packet
=
{
[
IP_CT_FTP_PORT
]
=
mangle_rfc959_packet
,
[
IP_CT_FTP_PASV
]
=
mangle_rfc959_packet
,
[
IP_CT_FTP_EPRT
]
=
mangle_eprt_packet
,
[
IP_CT_FTP_EPSV
]
=
mangle_epsv_packet
};
static
int
ftp_data_fixup
(
const
struct
ip_ct_ftp_expect
*
ct_ftp_info
,
...
...
net/ipv4/netfilter/ip_nat_rule.c
View file @
2c5c4f1f
...
...
@@ -56,12 +56,12 @@ static struct
}
nat_initial_table
__initdata
=
{
{
"nat"
,
NAT_VALID_HOOKS
,
4
,
sizeof
(
struct
ipt_standard
)
*
3
+
sizeof
(
struct
ipt_error
),
{
[
NF_IP_PRE_ROUTING
]
0
,
[
NF_IP_POST_ROUTING
]
sizeof
(
struct
ipt_standard
),
[
NF_IP_LOCAL_OUT
]
sizeof
(
struct
ipt_standard
)
*
2
},
{
[
NF_IP_PRE_ROUTING
]
0
,
[
NF_IP_POST_ROUTING
]
sizeof
(
struct
ipt_standard
),
[
NF_IP_LOCAL_OUT
]
sizeof
(
struct
ipt_standard
)
*
2
},
{
[
NF_IP_PRE_ROUTING
]
=
0
,
[
NF_IP_POST_ROUTING
]
=
sizeof
(
struct
ipt_standard
),
[
NF_IP_LOCAL_OUT
]
=
sizeof
(
struct
ipt_standard
)
*
2
},
{
[
NF_IP_PRE_ROUTING
]
=
0
,
[
NF_IP_POST_ROUTING
]
=
sizeof
(
struct
ipt_standard
),
[
NF_IP_LOCAL_OUT
]
=
sizeof
(
struct
ipt_standard
)
*
2
},
0
,
NULL
,
{
}
},
{
/* PRE_ROUTING */
...
...
net/ipv4/netfilter/iptable_filter.c
View file @
2c5c4f1f
...
...
@@ -35,12 +35,12 @@ static struct
}
initial_table
__initdata
=
{
{
"filter"
,
FILTER_VALID_HOOKS
,
4
,
sizeof
(
struct
ipt_standard
)
*
3
+
sizeof
(
struct
ipt_error
),
{
[
NF_IP_LOCAL_IN
]
0
,
[
NF_IP_FORWARD
]
sizeof
(
struct
ipt_standard
),
[
NF_IP_LOCAL_OUT
]
sizeof
(
struct
ipt_standard
)
*
2
},
{
[
NF_IP_LOCAL_IN
]
0
,
[
NF_IP_FORWARD
]
sizeof
(
struct
ipt_standard
),
[
NF_IP_LOCAL_OUT
]
sizeof
(
struct
ipt_standard
)
*
2
},
{
[
NF_IP_LOCAL_IN
]
=
0
,
[
NF_IP_FORWARD
]
=
sizeof
(
struct
ipt_standard
),
[
NF_IP_LOCAL_OUT
]
=
sizeof
(
struct
ipt_standard
)
*
2
},
{
[
NF_IP_LOCAL_IN
]
=
0
,
[
NF_IP_FORWARD
]
=
sizeof
(
struct
ipt_standard
),
[
NF_IP_LOCAL_OUT
]
=
sizeof
(
struct
ipt_standard
)
*
2
},
0
,
NULL
,
{
}
},
{
/* LOCAL_IN */
...
...
net/ipv4/netfilter/iptable_mangle.c
View file @
2c5c4f1f
...
...
@@ -48,16 +48,16 @@ static struct
}
initial_table
__initdata
=
{
{
"mangle"
,
MANGLE_VALID_HOOKS
,
6
,
sizeof
(
struct
ipt_standard
)
*
5
+
sizeof
(
struct
ipt_error
),
{
[
NF_IP_PRE_ROUTING
]
0
,
[
NF_IP_LOCAL_IN
]
sizeof
(
struct
ipt_standard
),
[
NF_IP_FORWARD
]
sizeof
(
struct
ipt_standard
)
*
2
,
[
NF_IP_LOCAL_OUT
]
sizeof
(
struct
ipt_standard
)
*
3
,
[
NF_IP_POST_ROUTING
]
sizeof
(
struct
ipt_standard
)
*
4
},
{
[
NF_IP_PRE_ROUTING
]
0
,
[
NF_IP_LOCAL_IN
]
sizeof
(
struct
ipt_standard
),
[
NF_IP_FORWARD
]
sizeof
(
struct
ipt_standard
)
*
2
,
[
NF_IP_LOCAL_OUT
]
sizeof
(
struct
ipt_standard
)
*
3
,
[
NF_IP_POST_ROUTING
]
sizeof
(
struct
ipt_standard
)
*
4
},
{
[
NF_IP_PRE_ROUTING
]
=
0
,
[
NF_IP_LOCAL_IN
]
=
sizeof
(
struct
ipt_standard
),
[
NF_IP_FORWARD
]
=
sizeof
(
struct
ipt_standard
)
*
2
,
[
NF_IP_LOCAL_OUT
]
=
sizeof
(
struct
ipt_standard
)
*
3
,
[
NF_IP_POST_ROUTING
]
=
sizeof
(
struct
ipt_standard
)
*
4
},
{
[
NF_IP_PRE_ROUTING
]
=
0
,
[
NF_IP_LOCAL_IN
]
=
sizeof
(
struct
ipt_standard
),
[
NF_IP_FORWARD
]
=
sizeof
(
struct
ipt_standard
)
*
2
,
[
NF_IP_LOCAL_OUT
]
=
sizeof
(
struct
ipt_standard
)
*
3
,
[
NF_IP_POST_ROUTING
]
=
sizeof
(
struct
ipt_standard
)
*
4
},
0
,
NULL
,
{
}
},
{
/* PRE_ROUTING */
...
...
net/ipv4/proc.c
View file @
2c5c4f1f
...
...
@@ -99,7 +99,7 @@ fold_field(void *mib[], int nr)
*
((
unsigned
long
*
)
(((
void
*
)
per_cpu_ptr
(
mib
[
0
],
i
))
+
sizeof
(
unsigned
long
)
*
nr
));
res
+=
*
((
unsigned
long
*
)
(((
void
*
)
per_cpu_ptr
(
mib
[
0
],
i
))
+
*
((
unsigned
long
*
)
(((
void
*
)
per_cpu_ptr
(
mib
[
1
],
i
))
+
sizeof
(
unsigned
long
)
*
nr
));
}
return
res
;
...
...
net/ipv4/tcp_output.c
View file @
2c5c4f1f
...
...
@@ -1522,7 +1522,8 @@ void tcp_send_probe0(struct sock *sk)
}
if
(
err
<=
0
)
{
tp
->
backoff
++
;
if
(
tp
->
backoff
<
sysctl_tcp_retries2
)
tp
->
backoff
++
;
tp
->
probes_out
++
;
tcp_reset_xmit_timer
(
sk
,
TCP_TIME_PROBE0
,
min
(
tp
->
rto
<<
tp
->
backoff
,
TCP_RTO_MAX
));
...
...
net/ipv6/netfilter/ip6table_filter.c
View file @
2c5c4f1f
...
...
@@ -35,12 +35,12 @@ static struct
}
initial_table
__initdata
=
{
{
"filter"
,
FILTER_VALID_HOOKS
,
4
,
sizeof
(
struct
ip6t_standard
)
*
3
+
sizeof
(
struct
ip6t_error
),
{
[
NF_IP6_LOCAL_IN
]
0
,
[
NF_IP6_FORWARD
]
sizeof
(
struct
ip6t_standard
),
[
NF_IP6_LOCAL_OUT
]
sizeof
(
struct
ip6t_standard
)
*
2
},
{
[
NF_IP6_LOCAL_IN
]
0
,
[
NF_IP6_FORWARD
]
sizeof
(
struct
ip6t_standard
),
[
NF_IP6_LOCAL_OUT
]
sizeof
(
struct
ip6t_standard
)
*
2
},
{
[
NF_IP6_LOCAL_IN
]
=
0
,
[
NF_IP6_FORWARD
]
=
sizeof
(
struct
ip6t_standard
),
[
NF_IP6_LOCAL_OUT
]
=
sizeof
(
struct
ip6t_standard
)
*
2
},
{
[
NF_IP6_LOCAL_IN
]
=
0
,
[
NF_IP6_FORWARD
]
=
sizeof
(
struct
ip6t_standard
),
[
NF_IP6_LOCAL_OUT
]
=
sizeof
(
struct
ip6t_standard
)
*
2
},
0
,
NULL
,
{
}
},
{
/* LOCAL_IN */
...
...
net/ipv6/netfilter/ip6table_mangle.c
View file @
2c5c4f1f
...
...
@@ -45,16 +45,16 @@ static struct
}
initial_table
__initdata
=
{
{
"mangle"
,
MANGLE_VALID_HOOKS
,
6
,
sizeof
(
struct
ip6t_standard
)
*
5
+
sizeof
(
struct
ip6t_error
),
{
[
NF_IP6_PRE_ROUTING
]
0
,
[
NF_IP6_LOCAL_IN
]
sizeof
(
struct
ip6t_standard
),
[
NF_IP6_FORWARD
]
sizeof
(
struct
ip6t_standard
)
*
2
,
[
NF_IP6_LOCAL_OUT
]
sizeof
(
struct
ip6t_standard
)
*
3
,
[
NF_IP6_POST_ROUTING
]
sizeof
(
struct
ip6t_standard
)
*
4
},
{
[
NF_IP6_PRE_ROUTING
]
0
,
[
NF_IP6_LOCAL_IN
]
sizeof
(
struct
ip6t_standard
),
[
NF_IP6_FORWARD
]
sizeof
(
struct
ip6t_standard
)
*
2
,
[
NF_IP6_LOCAL_OUT
]
sizeof
(
struct
ip6t_standard
)
*
3
,
[
NF_IP6_POST_ROUTING
]
sizeof
(
struct
ip6t_standard
)
*
4
},
{
[
NF_IP6_PRE_ROUTING
]
=
0
,
[
NF_IP6_LOCAL_IN
]
=
sizeof
(
struct
ip6t_standard
),
[
NF_IP6_FORWARD
]
=
sizeof
(
struct
ip6t_standard
)
*
2
,
[
NF_IP6_LOCAL_OUT
]
=
sizeof
(
struct
ip6t_standard
)
*
3
,
[
NF_IP6_POST_ROUTING
]
=
sizeof
(
struct
ip6t_standard
)
*
4
},
{
[
NF_IP6_PRE_ROUTING
]
=
0
,
[
NF_IP6_LOCAL_IN
]
=
sizeof
(
struct
ip6t_standard
),
[
NF_IP6_FORWARD
]
=
sizeof
(
struct
ip6t_standard
)
*
2
,
[
NF_IP6_LOCAL_OUT
]
=
sizeof
(
struct
ip6t_standard
)
*
3
,
[
NF_IP6_POST_ROUTING
]
=
sizeof
(
struct
ip6t_standard
)
*
4
},
0
,
NULL
,
{
}
},
{
/* PRE_ROUTING */
...
...
net/sched/sch_gred.c
View file @
2c5c4f1f
...
...
@@ -116,7 +116,7 @@ gred_enqueue(struct sk_buff *skb, struct Qdisc* sch)
}
if
(
((
skb
->
tc_index
&
0xf
)
>
t
->
DPs
)
||
!
(
q
=
t
->
tab
[
skb
->
tc_index
&
0xf
]))
{
if
(
((
skb
->
tc_index
&
0xf
)
>
(
t
->
DPs
-
1
)
)
||
!
(
q
=
t
->
tab
[
skb
->
tc_index
&
0xf
]))
{
printk
(
"GRED: setting to default (%d)
\n
"
,
t
->
def
);
if
(
!
(
q
=
t
->
tab
[
t
->
def
]))
{
DPRINTK
(
"GRED: setting to default FAILED! dropping!! "
...
...
net/x25/x25_link.c
View file @
2c5c4f1f
...
...
@@ -218,8 +218,9 @@ void x25_transmit_clear_request(struct x25_neigh *nb, unsigned int lci,
dptr
=
skb_put
(
skb
,
X25_STD_MIN_LEN
+
2
);
*
dptr
++
=
((
lci
>>
8
)
&
0x0F
)
|
nb
->
extended
?
X25_GFI_EXTSEQ
:
X25_GFI_STDSEQ
;
*
dptr
++
=
((
lci
>>
8
)
&
0x0F
)
|
(
nb
->
extended
?
X25_GFI_EXTSEQ
:
X25_GFI_STDSEQ
);
*
dptr
++
=
(
lci
>>
0
)
&
0xFF
;
*
dptr
++
=
X25_CLEAR_REQUEST
;
*
dptr
++
=
cause
;
...
...
scripts/Makefile.build
View file @
2c5c4f1f
...
...
@@ -94,7 +94,7 @@ define rule_vcc_o_c
else
\
$(CPP)
-D__GENKSYMS__
$(c_flags)
$<
\
|
$(GENKSYMS)
-k
$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)
\
|
sed
-n
's/\#define __ver_\(
\w*\)\W*\(\w
*\)/__crc_\1 = 0x\2 ;/gp'
\
|
sed
-n
's/\#define __ver_\(
[^ ]*\)[ ]*\([^ ]
*\)/__crc_\1 = 0x\2 ;/gp'
\
> $(@D)/.tmp_$(@F
:
.o=.ver);
\
\
$(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F)
\
...
...
scripts/Makefile.lib
View file @
2c5c4f1f
...
...
@@ -165,7 +165,7 @@ cmd_ld = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) \
# ---------------------------------------------------------------------------
quiet_cmd_objcopy
=
OBJCOPY
$@
cmd_objcopy
=
$(OBJCOPY)
$(OBJCOPYFLAGS)
$<
$@
cmd_objcopy
=
$(OBJCOPY)
$(OBJCOPYFLAGS)
$
(
OBJCOPYFLAGS_
$
(
@F
))
$
<
$@
# Gzip
# ---------------------------------------------------------------------------
...
...
@@ -178,14 +178,16 @@ cmd_gzip = gzip -f -9 < $< > $@
# ===========================================================================
# function to only execute the passed command if necessary
# >'< substitution is for echo to work, >$< substitution to preserve $ when reloading .cmd file
# note: when using inline perl scripts [perl -e '...$$t=1;...'] in $(cmd_xxx) double $$ your perl vars
if_changed
=
$(
if
$(
strip
$?
\
$(
filter-out
$
(
cmd_
$(1)
)
,
$
(
cmd_
$@
))
\
$(
filter-out
$
(
cmd_
$@
)
,
$
(
cmd_
$(1)
)))
,
\
@set
-e
;
\
$(
if
$
(
$(quiet)
cmd_
$(1)
)
,echo
' $(
$(quiet)
cmd_
$(1
)
)
'
;
)
\
$(
if
$
(
$(quiet)
cmd_
$(1)
)
,echo
'
$(
subst
'
,
'\'',$(
$(quiet)
cmd_
$(1)
))
'
;
)
\
$
(
cmd_
$(1)
)
;
\
echo
'cmd_$@ := $(
cmd_
$(1
)
)
'
>
$
(
@D
)
/.
$
(
@F
)
.cmd
)
echo
'cmd_$@ :=
$(
subst
$$,$$$$,
$(
subst
'
,
'\'',$(cmd_
$(1)
)
))
'
>
$
(
@D
)
/.
$
(
@F
)
.cmd
)
# execute the command and also postprocess generated .d dependencies
...
...
@@ -195,9 +197,9 @@ if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\
$(
filter-out
$
(
cmd_
$(1)
)
,
$
(
cmd_
$@
))
\
$(
filter-out
$
(
cmd_
$@
)
,
$
(
cmd_
$(1)
)))
,
\
@set
-e
;
\
$(
if
$
(
$(quiet)
cmd_
$(1)
)
,echo
' $(
$(quiet)
cmd_
$(1
)
)
'
;
)
\
$(
if
$
(
$(quiet)
cmd_
$(1)
)
,echo
'
$(
subst
'
,
'\'',$(
$(quiet)
cmd_
$(1)
))
'
;
)
\
$
(
cmd_
$(1)
)
;
\
scripts/fixdep
$(depfile)
$@
'$(
cmd_
$(1
)
)
'
>
$
(
@D
)
/.
$
(
@F
)
.tmp
;
\
scripts/fixdep
$(depfile)
$@
'
$(
subst
$$,$$$$,
$(
subst
'
,
'\'',$(cmd_
$(1)
)
))
'
>
$
(
@D
)
/.
$
(
@F
)
.tmp
;
\
rm
-f
$(depfile)
;
\
mv
-f
$
(
@D
)
/.
$
(
@F
)
.tmp
$
(
@D
)
/.
$
(
@F
)
.cmd
)
...
...
scripts/Makefile.modver
View file @
2c5c4f1f
...
...
@@ -9,11 +9,12 @@ include scripts/Makefile.lib
#
__modules
:=
$(
shell
c
d
$(MODVERDIR)
;
cat
*
.mod
)
__modules
:=
$(
shell
c
at
/dev/null
$(
wildcard
$(MODVERDIR)
/
*
.mod
)
)
modules
:=
$(
patsubst
%.o,%.ko,
$(
wildcard
$(__modules:.ko=.o)
))
ifneq
($(filter-out $(modules),$(__modules)),)
$(warning
***
Uh-oh,
you
have
stale
module
entries.
You
messed
with
SUBDIRS,
don't
complain
if
something
goes
wrong.)
$(warning
***
Uh-oh,
you
have
stale
module
entries.
You
messed
with
SUBDIRS,)
$(warning
do
not
complain
if
something
goes
wrong.)
endif
__modversions
:
$(modules)
...
...
scripts/fixdep.c
View file @
2c5c4f1f
...
...
@@ -277,6 +277,8 @@ void do_config_file(char *filename)
parse_config_file
(
map
,
st
.
st_size
);
munmap
(
map
,
st
.
st_size
);
close
(
fd
);
}
void
parse_dep_file
(
void
*
map
,
size_t
len
)
...
...
@@ -346,6 +348,8 @@ void print_deps(void)
parse_dep_file
(
map
,
st
.
st_size
);
munmap
(
map
,
st
.
st_size
);
close
(
fd
);
}
void
traps
(
void
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment