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
1a324727
Commit
1a324727
authored
Nov 21, 2005
by
Linus Torvalds
Browse files
Options
Browse Files
Download
Plain Diff
Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
parents
db93a82f
461ddf3b
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
70 additions
and
45 deletions
+70
-45
Documentation/DocBook/kernel-api.tmpl
Documentation/DocBook/kernel-api.tmpl
+4
-2
fs/compat_ioctl.c
fs/compat_ioctl.c
+3
-5
include/linux/netfilter_ipv4/ipt_sctp.h
include/linux/netfilter_ipv4/ipt_sctp.h
+5
-7
include/linux/skbuff.h
include/linux/skbuff.h
+3
-4
include/net/ipv6.h
include/net/ipv6.h
+2
-0
net/core/filter.c
net/core/filter.c
+4
-2
net/dccp/proto.c
net/dccp/proto.c
+1
-0
net/ipv4/fib_trie.c
net/ipv4/fib_trie.c
+3
-0
net/ipv4/netfilter/Kconfig
net/ipv4/netfilter/Kconfig
+5
-5
net/ipv6/addrconf.c
net/ipv6/addrconf.c
+5
-5
net/ipv6/datagram.c
net/ipv6/datagram.c
+1
-1
net/ipv6/exthdrs.c
net/ipv6/exthdrs.c
+21
-1
net/ipv6/ip6_flowlabel.c
net/ipv6/ip6_flowlabel.c
+6
-10
net/ipv6/raw.c
net/ipv6/raw.c
+3
-1
net/ipv6/udp.c
net/ipv6/udp.c
+3
-1
net/sched/sch_netem.c
net/sched/sch_netem.c
+1
-1
No files found.
Documentation/DocBook/kernel-api.tmpl
View file @
1a324727
...
...
@@ -237,8 +237,10 @@ X!Ilib/string.c
<sect1><title>
Driver Support
</title>
!Enet/core/dev.c
!Enet/ethernet/eth.c
!Einclude/linux/etherdevice.h
!Enet/core/wireless.c
!Iinclude/linux/etherdevice.h
<!-- FIXME: Removed for now since no structured comments in source
X!Enet/core/wireless.c
-->
</sect1>
<sect1><title>
Synchronous PPP
</title>
!Edrivers/net/wan/syncppp.c
...
...
fs/compat_ioctl.c
View file @
1a324727
...
...
@@ -686,7 +686,8 @@ static int dev_ifconf(unsigned int fd, unsigned int cmd, unsigned long arg)
ifr
=
ifc
.
ifc_req
;
ifr32
=
compat_ptr
(
ifc32
.
ifcbuf
);
for
(
i
=
0
,
j
=
0
;
i
<
ifc32
.
ifc_len
&&
j
<
ifc
.
ifc_len
;
for
(
i
=
0
,
j
=
0
;
i
+
sizeof
(
struct
ifreq32
)
<
ifc32
.
ifc_len
&&
j
<
ifc
.
ifc_len
;
i
+=
sizeof
(
struct
ifreq32
),
j
+=
sizeof
(
struct
ifreq
))
{
if
(
copy_in_user
(
ifr32
,
ifr
,
sizeof
(
struct
ifreq32
)))
return
-
EFAULT
;
...
...
@@ -702,10 +703,7 @@ static int dev_ifconf(unsigned int fd, unsigned int cmd, unsigned long arg)
i
=
((
i
/
sizeof
(
struct
ifreq
))
*
sizeof
(
struct
ifreq32
));
ifc32
.
ifc_len
=
i
;
}
else
{
if
(
i
<=
ifc32
.
ifc_len
)
ifc32
.
ifc_len
=
i
;
else
ifc32
.
ifc_len
=
i
-
sizeof
(
struct
ifreq32
);
ifc32
.
ifc_len
=
i
;
}
if
(
copy_to_user
(
compat_ptr
(
arg
),
&
ifc32
,
sizeof
(
struct
ifconf32
)))
return
-
EFAULT
;
...
...
include/linux/netfilter_ipv4/ipt_sctp.h
View file @
1a324727
...
...
@@ -7,8 +7,6 @@
#define IPT_SCTP_VALID_FLAGS 0x07
#define ELEMCOUNT(x) (sizeof(x)/sizeof(x[0]))
struct
ipt_sctp_flag_info
{
u_int8_t
chunktype
;
...
...
@@ -59,21 +57,21 @@ struct ipt_sctp_info {
#define SCTP_CHUNKMAP_RESET(chunkmap) \
do { \
int i; \
for (i = 0; i <
ELEMCOUNT
(chunkmap); i++) \
for (i = 0; i <
ARRAY_SIZE
(chunkmap); i++) \
chunkmap[i] = 0; \
} while (0)
#define SCTP_CHUNKMAP_SET_ALL(chunkmap) \
do { \
int i; \
for (i = 0; i <
ELEMCOUNT(chunkmap); i++)
\
for (i = 0; i <
ARRAY_SIZE(chunkmap); i++)
\
chunkmap[i] = ~0; \
} while (0)
#define SCTP_CHUNKMAP_COPY(destmap, srcmap) \
do { \
int i; \
for (i = 0; i <
ELEMCOUNT(chunkmap); i++)
\
for (i = 0; i <
ARRAY_SIZE(chunkmap); i++)
\
destmap[i] = srcmap[i]; \
} while (0)
...
...
@@ -81,7 +79,7 @@ struct ipt_sctp_info {
({ \
int i; \
int flag = 1; \
for (i = 0; i <
ELEMCOUNT
(chunkmap); i++) { \
for (i = 0; i <
ARRAY_SIZE
(chunkmap); i++) { \
if (chunkmap[i]) { \
flag = 0; \
break; \
...
...
@@ -94,7 +92,7 @@ struct ipt_sctp_info {
({ \
int i; \
int flag = 1; \
for (i = 0; i <
ELEMCOUNT
(chunkmap); i++) { \
for (i = 0; i <
ARRAY_SIZE
(chunkmap); i++) { \
if (chunkmap[i] != ~0) { \
flag = 0; \
break; \
...
...
include/linux/skbuff.h
View file @
1a324727
...
...
@@ -206,6 +206,7 @@ enum {
* @nfct: Associated connection, if any
* @ipvs_property: skbuff is owned by ipvs
* @nfctinfo: Relationship of this skb to the connection
* @nfct_reasm: netfilter conntrack re-assembly pointer
* @nf_bridge: Saved data about a bridged frame - see br_netfilter.c
* @tc_index: Traffic control index
* @tc_verd: traffic control verdict
...
...
@@ -264,16 +265,14 @@ struct sk_buff {
nohdr:
1
,
nfctinfo:
3
;
__u8
pkt_type
:
3
,
fclone:
2
;
fclone:
2
,
ipvs_property:
1
;
__be16
protocol
;
void
(
*
destructor
)(
struct
sk_buff
*
skb
);
#ifdef CONFIG_NETFILTER
__u32
nfmark
;
struct
nf_conntrack
*
nfct
;
#if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE)
__u8
ipvs_property
:
1
;
#endif
#if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
struct
sk_buff
*
nfct_reasm
;
#endif
...
...
include/net/ipv6.h
View file @
1a324727
...
...
@@ -237,6 +237,8 @@ extern struct ipv6_txoptions * ipv6_renew_options(struct sock *sk, struct ipv6_t
int
newtype
,
struct
ipv6_opt_hdr
__user
*
newopt
,
int
newoptlen
);
struct
ipv6_txoptions
*
ipv6_fixup_options
(
struct
ipv6_txoptions
*
opt_space
,
struct
ipv6_txoptions
*
opt
);
extern
int
ip6_frag_nqueues
;
extern
atomic_t
ip6_frag_mem
;
...
...
net/core/filter.c
View file @
1a324727
...
...
@@ -116,8 +116,6 @@ int sk_run_filter(struct sk_buff *skb, struct sock_filter *filter, int flen)
A
/=
X
;
continue
;
case
BPF_ALU
|
BPF_DIV
|
BPF_K
:
if
(
fentry
->
k
==
0
)
return
0
;
A
/=
fentry
->
k
;
continue
;
case
BPF_ALU
|
BPF_AND
|
BPF_X
:
...
...
@@ -320,6 +318,10 @@ int sk_chk_filter(struct sock_filter *filter, int flen)
}
}
/* check for division by zero -Kris Katterjohn 2005-10-30 */
if
(
ftest
->
code
==
(
BPF_ALU
|
BPF_DIV
|
BPF_K
)
&&
ftest
->
k
==
0
)
return
-
EINVAL
;
/* check that memory operations use valid addresses. */
if
(
ftest
->
k
>=
BPF_MEMWORDS
)
{
/* but it might not be a memory operation... */
...
...
net/dccp/proto.c
View file @
1a324727
...
...
@@ -46,6 +46,7 @@ atomic_t dccp_orphan_count = ATOMIC_INIT(0);
static
struct
net_protocol
dccp_protocol
=
{
.
handler
=
dccp_v4_rcv
,
.
err_handler
=
dccp_v4_err
,
.
no_policy
=
1
,
};
const
char
*
dccp_packet_name
(
const
int
type
)
...
...
net/ipv4/fib_trie.c
View file @
1a324727
...
...
@@ -2378,6 +2378,7 @@ static unsigned fib_flag_trans(int type, u32 mask, const struct fib_info *fi)
*/
static
int
fib_route_seq_show
(
struct
seq_file
*
seq
,
void
*
v
)
{
const
struct
fib_trie_iter
*
iter
=
seq
->
private
;
struct
leaf
*
l
=
v
;
int
i
;
char
bf
[
128
];
...
...
@@ -2389,6 +2390,8 @@ static int fib_route_seq_show(struct seq_file *seq, void *v)
return
0
;
}
if
(
iter
->
trie
==
trie_local
)
return
0
;
if
(
IS_TNODE
(
l
))
return
0
;
...
...
net/ipv4/netfilter/Kconfig
View file @
1a324727
...
...
@@ -440,7 +440,7 @@ config IP_NF_MATCH_COMMENT
config IP_NF_MATCH_CONNMARK
tristate 'Connection mark match support'
depends on IP_NF_IPTABLES
depends on
IP_NF_CONNTRACK_MARK
|| (NF_CONNTRACK_MARK && NF_CONNTRACK_IPV4)
depends on
(IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK)
|| (NF_CONNTRACK_MARK && NF_CONNTRACK_IPV4)
help
This option adds a `connmark' match, which allows you to match the
connection mark value previously set for the session by `CONNMARK'.
...
...
@@ -452,7 +452,7 @@ config IP_NF_MATCH_CONNMARK
config IP_NF_MATCH_CONNBYTES
tristate 'Connection byte/packet counter match support'
depends on IP_NF_IPTABLES
depends on
IP_NF_CT_ACCT
|| (NF_CT_ACCT && NF_CONNTRACK_IPV4)
depends on
(IP_NF_CONNTRACK && IP_NF_CT_ACCT)
|| (NF_CT_ACCT && NF_CONNTRACK_IPV4)
help
This option adds a `connbytes' match, which allows you to match the
number of bytes and/or packets for each direction within a connection.
...
...
@@ -767,7 +767,7 @@ config IP_NF_TARGET_TTL
config IP_NF_TARGET_CONNMARK
tristate 'CONNMARK target support'
depends on IP_NF_MANGLE
depends on
IP_NF_CONNTRACK_MARK
|| (NF_CONNTRACK_MARK && NF_CONNTRACK_IPV4)
depends on
(IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK)
|| (NF_CONNTRACK_MARK && NF_CONNTRACK_IPV4)
help
This option adds a `CONNMARK' target, which allows one to manipulate
the connection mark value. Similar to the MARK target, but
...
...
@@ -779,8 +779,8 @@ config IP_NF_TARGET_CONNMARK
config IP_NF_TARGET_CLUSTERIP
tristate "CLUSTERIP target support (EXPERIMENTAL)"
depends on IP_NF_
IPTABLES
&& EXPERIMENTAL
depends on
IP_NF_CONNTRACK_MARK
|| (NF_CONNTRACK_MARK && NF_CONNTRACK_IPV4)
depends on IP_NF_
MANGLE
&& EXPERIMENTAL
depends on
(IP_NF_CONNTRACK && IP_NF_CONNTRACK_MARK)
|| (NF_CONNTRACK_MARK && NF_CONNTRACK_IPV4)
help
The CLUSTERIP target allows you to build load-balancing clusters of
network servers without having a dedicated load-balancing
...
...
net/ipv6/addrconf.c
View file @
1a324727
...
...
@@ -2627,7 +2627,7 @@ static void addrconf_verify(unsigned long foo)
for
(
i
=
0
;
i
<
IN6_ADDR_HSIZE
;
i
++
)
{
restart:
write
_lock
(
&
addrconf_hash_lock
);
read
_lock
(
&
addrconf_hash_lock
);
for
(
ifp
=
inet6_addr_lst
[
i
];
ifp
;
ifp
=
ifp
->
lst_next
)
{
unsigned
long
age
;
#ifdef CONFIG_IPV6_PRIVACY
...
...
@@ -2649,7 +2649,7 @@ static void addrconf_verify(unsigned long foo)
if
(
age
>=
ifp
->
valid_lft
)
{
spin_unlock
(
&
ifp
->
lock
);
in6_ifa_hold
(
ifp
);
write
_unlock
(
&
addrconf_hash_lock
);
read
_unlock
(
&
addrconf_hash_lock
);
ipv6_del_addr
(
ifp
);
goto
restart
;
}
else
if
(
age
>=
ifp
->
prefered_lft
)
{
...
...
@@ -2668,7 +2668,7 @@ static void addrconf_verify(unsigned long foo)
if
(
deprecate
)
{
in6_ifa_hold
(
ifp
);
write
_unlock
(
&
addrconf_hash_lock
);
read
_unlock
(
&
addrconf_hash_lock
);
ipv6_ifa_notify
(
0
,
ifp
);
in6_ifa_put
(
ifp
);
...
...
@@ -2686,7 +2686,7 @@ static void addrconf_verify(unsigned long foo)
in6_ifa_hold
(
ifp
);
in6_ifa_hold
(
ifpub
);
spin_unlock
(
&
ifp
->
lock
);
write
_unlock
(
&
addrconf_hash_lock
);
read
_unlock
(
&
addrconf_hash_lock
);
ipv6_create_tempaddr
(
ifpub
,
ifp
);
in6_ifa_put
(
ifpub
);
in6_ifa_put
(
ifp
);
...
...
@@ -2703,7 +2703,7 @@ static void addrconf_verify(unsigned long foo)
spin_unlock
(
&
ifp
->
lock
);
}
}
write
_unlock
(
&
addrconf_hash_lock
);
read
_unlock
(
&
addrconf_hash_lock
);
}
addr_chk_timer
.
expires
=
time_before
(
next
,
jiffies
+
HZ
)
?
jiffies
+
HZ
:
next
;
...
...
net/ipv6/datagram.c
View file @
1a324727
...
...
@@ -437,7 +437,7 @@ int datagram_recv_ctl(struct sock *sk, struct msghdr *msg, struct sk_buff *skb)
break
;
case
IPPROTO_AH
:
nexthdr
=
ptr
[
0
];
len
=
(
ptr
[
1
]
+
1
)
<<
2
;
len
=
(
ptr
[
1
]
+
2
)
<<
2
;
break
;
default:
nexthdr
=
ptr
[
0
];
...
...
net/ipv6/exthdrs.c
View file @
1a324727
...
...
@@ -628,6 +628,7 @@ ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
if
(
!
tot_len
)
return
NULL
;
tot_len
+=
sizeof
(
*
opt2
);
opt2
=
sock_kmalloc
(
sk
,
tot_len
,
GFP_ATOMIC
);
if
(
!
opt2
)
return
ERR_PTR
(
-
ENOBUFS
);
...
...
@@ -668,7 +669,26 @@ ipv6_renew_options(struct sock *sk, struct ipv6_txoptions *opt,
return
opt2
;
out:
sock_kfree_s
(
sk
,
p
,
tot_len
);
sock_kfree_s
(
sk
,
opt2
,
opt2
->
tot_len
);
return
ERR_PTR
(
err
);
}
struct
ipv6_txoptions
*
ipv6_fixup_options
(
struct
ipv6_txoptions
*
opt_space
,
struct
ipv6_txoptions
*
opt
)
{
/*
* ignore the dest before srcrt unless srcrt is being included.
* --yoshfuji
*/
if
(
opt
&&
opt
->
dst0opt
&&
!
opt
->
srcrt
)
{
if
(
opt_space
!=
opt
)
{
memcpy
(
opt_space
,
opt
,
sizeof
(
*
opt_space
));
opt
=
opt_space
;
}
opt
->
opt_nflen
-=
ipv6_optlen
(
opt
->
dst0opt
);
opt
->
dst0opt
=
NULL
;
}
return
opt
;
}
net/ipv6/ip6_flowlabel.c
View file @
1a324727
...
...
@@ -225,20 +225,16 @@ struct ipv6_txoptions *fl6_merge_options(struct ipv6_txoptions * opt_space,
struct
ip6_flowlabel
*
fl
,
struct
ipv6_txoptions
*
fopt
)
{
struct
ipv6_txoptions
*
fl_opt
=
fl
?
fl
->
opt
:
NULL
;
if
(
fopt
==
NULL
||
fopt
->
opt_flen
==
0
)
{
if
(
!
fl_opt
||
!
fl_opt
->
dst0opt
||
fl_opt
->
srcrt
)
return
fl_opt
;
}
struct
ipv6_txoptions
*
fl_opt
=
fl
->
opt
;
if
(
fopt
==
NULL
||
fopt
->
opt_flen
==
0
)
return
fl_opt
;
if
(
fl_opt
!=
NULL
)
{
opt_space
->
hopopt
=
fl_opt
->
hopopt
;
opt_space
->
dst0opt
=
fl_opt
->
srcrt
?
fl_opt
->
dst0opt
:
NULL
;
opt_space
->
dst0opt
=
fl_opt
->
dst0opt
;
opt_space
->
srcrt
=
fl_opt
->
srcrt
;
opt_space
->
opt_nflen
=
fl_opt
->
opt_nflen
;
if
(
fl_opt
->
dst0opt
&&
!
fl_opt
->
srcrt
)
opt_space
->
opt_nflen
-=
ipv6_optlen
(
fl_opt
->
dst0opt
);
}
else
{
if
(
fopt
->
opt_nflen
==
0
)
return
fopt
;
...
...
net/ipv6/raw.c
View file @
1a324727
...
...
@@ -748,7 +748,9 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk,
}
if
(
opt
==
NULL
)
opt
=
np
->
opt
;
opt
=
fl6_merge_options
(
&
opt_space
,
flowlabel
,
opt
);
if
(
flowlabel
)
opt
=
fl6_merge_options
(
&
opt_space
,
flowlabel
,
opt
);
opt
=
ipv6_fixup_options
(
&
opt_space
,
opt
);
fl
.
proto
=
proto
;
rawv6_probe_proto_opt
(
&
fl
,
msg
);
...
...
net/ipv6/udp.c
View file @
1a324727
...
...
@@ -771,7 +771,9 @@ static int udpv6_sendmsg(struct kiocb *iocb, struct sock *sk,
}
if
(
opt
==
NULL
)
opt
=
np
->
opt
;
opt
=
fl6_merge_options
(
&
opt_space
,
flowlabel
,
opt
);
if
(
flowlabel
)
opt
=
fl6_merge_options
(
&
opt_space
,
flowlabel
,
opt
);
opt
=
ipv6_fixup_options
(
&
opt_space
,
opt
);
fl
->
proto
=
IPPROTO_UDP
;
ipv6_addr_copy
(
&
fl
->
fl6_dst
,
daddr
);
...
...
net/sched/sch_netem.c
View file @
1a324727
...
...
@@ -464,7 +464,7 @@ static int tfifo_enqueue(struct sk_buff *nskb, struct Qdisc *sch)
const
struct
netem_skb_cb
*
cb
=
(
const
struct
netem_skb_cb
*
)
skb
->
cb
;
if
(
PSCHED_TLESS
(
cb
->
time_to_send
,
n
cb
->
time_to_send
))
if
(
!
PSCHED_TLESS
(
ncb
->
time_to_send
,
cb
->
time_to_send
))
break
;
}
...
...
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