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
ebec1711
Commit
ebec1711
authored
Feb 11, 2004
by
David S. Miller
Browse files
Options
Browse Files
Download
Plain Diff
Merge nuts.davemloft.net:/disk1/BK/network-2.6
into nuts.davemloft.net:/disk1/BK/net-2.6
parents
d0d0b2da
67fa3c7e
Changes
24
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
204 additions
and
197 deletions
+204
-197
drivers/net/Kconfig
drivers/net/Kconfig
+2
-1
drivers/net/hamradio/Kconfig
drivers/net/hamradio/Kconfig
+8
-5
drivers/net/irda/Kconfig
drivers/net/irda/Kconfig
+1
-1
include/linux/ipv6_route.h
include/linux/ipv6_route.h
+0
-1
include/net/addrconf.h
include/net/addrconf.h
+1
-0
include/net/ip6_route.h
include/net/ip6_route.h
+1
-0
include/net/ipv6.h
include/net/ipv6.h
+1
-0
net/core/ethtool.c
net/core/ethtool.c
+1
-1
net/core/neighbour.c
net/core/neighbour.c
+1
-2
net/core/pktgen.c
net/core/pktgen.c
+12
-6
net/decnet/dn_rules.c
net/decnet/dn_rules.c
+1
-1
net/ipv4/fib_rules.c
net/ipv4/fib_rules.c
+1
-1
net/ipv6/addrconf.c
net/ipv6/addrconf.c
+2
-2
net/ipv6/exthdrs.c
net/ipv6/exthdrs.c
+1
-1
net/ipv6/ip6_fib.c
net/ipv6/ip6_fib.c
+1
-1
net/ipv6/ip6_input.c
net/ipv6/ip6_input.c
+19
-14
net/ipv6/ip6_tunnel.c
net/ipv6/ip6_tunnel.c
+1
-1
net/ipv6/mcast.c
net/ipv6/mcast.c
+28
-1
net/ipv6/ndisc.c
net/ipv6/ndisc.c
+110
-138
net/ipv6/netfilter/ip6t_eui64.c
net/ipv6/netfilter/ip6t_eui64.c
+1
-1
net/ipv6/raw.c
net/ipv6/raw.c
+3
-3
net/ipv6/route.c
net/ipv6/route.c
+6
-5
net/ipv6/xfrm6_policy.c
net/ipv6/xfrm6_policy.c
+1
-11
net/sched/sch_sfq.c
net/sched/sch_sfq.c
+1
-0
No files found.
drivers/net/Kconfig
View file @
ebec1711
...
...
@@ -1715,7 +1715,8 @@ config NET_POCKET
<file:Documentation/Changes>) and you can say N here.
Laptop users should read the Linux Laptop home page at
<http://www.linux-on-laptops.com/>.
<http://www.linux-on-laptops.com/> or
Tuxmobil - Linux on Mobile Computers at <http://www.tuxmobil.org/>.
Note that the answer to this question doesn't directly affect the
kernel: saying N will just cause the configurator to skip all
...
...
drivers/net/hamradio/Kconfig
View file @
ebec1711
...
...
@@ -72,8 +72,8 @@ config DMASCC
certain parameters, such as channel access timing, clock mode, and
DMA channel. This is accomplished with a small utility program,
dmascc_cfg, available at
<http://
www.nt.tuwien.ac.at/~kkudielk/Linux/>. Please be sure to get
at least version 1.27 of dmascc_cfg, as older versions will not
<http://
cacofonix.nt.tuwien.ac.at/~oe1kib/Linux/>. Please be sure to
get
at least version 1.27 of dmascc_cfg, as older versions will not
work with the current driver.
config SCC
...
...
@@ -96,8 +96,9 @@ config SCC_DELAY
help
Say Y here if you experience problems with the SCC driver not
working properly; please read
<file:Documentation/networking/z8530drv.txt> for details. If unsure,
say N.
<file:Documentation/networking/z8530drv.txt> for details.
If unsure, say N.
config SCC_TRXECHO
bool "support for TRX that feedback the tx signal to rx"
...
...
@@ -105,7 +106,9 @@ config SCC_TRXECHO
help
Some transmitters feed the transmitted signal back to the receive
line. Say Y here to foil this by explicitly disabling the receiver
during data transmission. If in doubt, say Y.
during data transmission.
If in doubt, say Y.
config BAYCOM_SER_FDX
tristate "BAYCOM ser12 fullduplex driver for AX.25"
...
...
drivers/net/irda/Kconfig
View file @
ebec1711
...
...
@@ -269,7 +269,7 @@ config MA600_DONGLE_OLD
information, download the following tar gzip file.
There is a pre-compiled module on
<http://engsvr.ust.hk/~eetwl95/
download/ma600-2.4.x.tar.gz
>
<http://engsvr.ust.hk/~eetwl95/
ma600.html
>
config EP7211_IR
tristate "EP7211 I/R support"
...
...
include/linux/ipv6_route.h
View file @
ebec1711
...
...
@@ -24,7 +24,6 @@
#define RTF_CACHE 0x01000000
/* cache entry */
#define RTF_FLOW 0x02000000
/* flow significant route */
#define RTF_POLICY 0x04000000
/* policy route */
#define RTF_NDISC 0x08000000
/* ndisc route */
#define RTF_LOCAL 0x80000000
...
...
include/net/addrconf.h
View file @
ebec1711
...
...
@@ -98,6 +98,7 @@ extern void addrconf_dad_failure(struct inet6_ifaddr *ifp);
extern
int
ipv6_chk_mcast_addr
(
struct
net_device
*
dev
,
struct
in6_addr
*
group
,
struct
in6_addr
*
src_addr
);
extern
int
ipv6_is_mld
(
struct
sk_buff
*
skb
,
int
nexthdr
);
extern
void
addrconf_prefix_rcv
(
struct
net_device
*
dev
,
u8
*
opt
,
int
len
);
...
...
include/net/ip6_route.h
View file @
ebec1711
...
...
@@ -64,6 +64,7 @@ extern struct rt6_info *rt6_lookup(struct in6_addr *daddr,
extern
struct
dst_entry
*
ndisc_dst_alloc
(
struct
net_device
*
dev
,
struct
neighbour
*
neigh
,
struct
in6_addr
*
addr
,
int
(
*
output
)(
struct
sk_buff
*
));
extern
int
ndisc_dst_gc
(
int
*
more
);
extern
void
fib6_force_start_gc
(
void
);
...
...
include/net/ipv6.h
View file @
ebec1711
...
...
@@ -355,6 +355,7 @@ extern int ip6_dst_lookup(struct sock *sk,
*/
extern
int
ip6_output
(
struct
sk_buff
*
skb
);
extern
int
ip6_output2
(
struct
sk_buff
*
skb
);
extern
int
ip6_forward
(
struct
sk_buff
*
skb
);
extern
int
ip6_input
(
struct
sk_buff
*
skb
);
extern
int
ip6_mc_input
(
struct
sk_buff
*
skb
);
...
...
net/core/ethtool.c
View file @
ebec1711
...
...
@@ -374,7 +374,7 @@ static int ethtool_set_ringparam(struct net_device *dev, void *useraddr)
{
struct
ethtool_ringparam
ringparam
;
if
(
!
dev
->
ethtool_ops
->
g
et_ringparam
)
if
(
!
dev
->
ethtool_ops
->
s
et_ringparam
)
return
-
EOPNOTSUPP
;
if
(
copy_from_user
(
&
ringparam
,
useraddr
,
sizeof
(
ringparam
)))
...
...
net/core/neighbour.c
View file @
ebec1711
...
...
@@ -1164,8 +1164,7 @@ void neigh_table_init(struct neigh_table *tbl)
if
(
!
tbl
->
kmem_cachep
)
tbl
->
kmem_cachep
=
kmem_cache_create
(
tbl
->
id
,
(
tbl
->
entry_size
+
15
)
&
~
15
,
tbl
->
entry_size
,
0
,
SLAB_HWCACHE_ALIGN
,
NULL
,
NULL
);
tbl
->
lock
=
RW_LOCK_UNLOCKED
;
...
...
net/core/pktgen.c
View file @
ebec1711
...
...
@@ -50,6 +50,8 @@
* Fix refcount off by one if first packet fails, potential null deref,
* memleak 030710- KJP
*
* Fixed unaligned access on IA-64 Grant Grundler <grundler@parisc-linux.org>
*
* See Documentation/networking/pktgen.txt for how to use this.
*/
...
...
@@ -88,7 +90,7 @@
#define cycles() ((u32)get_cycles())
#define VERSION "pktgen version 1.3
1
"
#define VERSION "pktgen version 1.3
2
"
static
char
version
[]
__initdata
=
"pktgen.c: v1.3: Packet Generator for packet performance testing.
\n
"
;
...
...
@@ -193,7 +195,8 @@ struct pktgen_info {
struct
pktgen_hdr
{
__u32
pgh_magic
;
__u32
seq_num
;
struct
timeval
timestamp
;
__u32
tv_sec
;
__u32
tv_usec
;
};
static
int
cpu_speed
;
...
...
@@ -563,11 +566,14 @@ static struct sk_buff *fill_packet(struct net_device *odev, struct pktgen_info*
/* Stamp the time, and sequence number, convert them to network byte order */
if
(
pgh
)
{
struct
timeval
timestamp
;
pgh
->
pgh_magic
=
htonl
(
PKTGEN_MAGIC
);
do_gettimeofday
(
&
(
pgh
->
timestamp
));
pgh
->
timestamp
.
tv_usec
=
htonl
(
pgh
->
timestamp
.
tv_usec
);
pgh
->
timestamp
.
tv_sec
=
htonl
(
pgh
->
timestamp
.
tv_sec
);
pgh
->
seq_num
=
htonl
(
info
->
seq_num
);
pgh
->
seq_num
=
htonl
(
info
->
seq_num
);
do_gettimeofday
(
&
timestamp
);
pgh
->
tv_sec
=
htonl
(
timestamp
.
tv_sec
);
pgh
->
tv_usec
=
htonl
(
timestamp
.
tv_usec
);
}
return
skb
;
...
...
net/decnet/dn_rules.c
View file @
ebec1711
...
...
@@ -381,7 +381,7 @@ static int dn_fib_fill_rule(struct sk_buff *skb, struct dn_fib_rule *r, struct n
nlmsg_failure:
rtattr_failure:
skb_
put
(
skb
,
b
-
skb
->
tail
);
skb_
trim
(
skb
,
b
-
skb
->
data
);
return
-
1
;
}
...
...
net/ipv4/fib_rules.c
View file @
ebec1711
...
...
@@ -438,7 +438,7 @@ static __inline__ int inet_fill_rule(struct sk_buff *skb,
nlmsg_failure:
rtattr_failure:
skb_
put
(
skb
,
b
-
skb
->
tail
);
skb_
trim
(
skb
,
b
-
skb
->
data
);
return
-
1
;
}
...
...
net/ipv6/addrconf.c
View file @
ebec1711
...
...
@@ -231,7 +231,7 @@ int ipv6_addr_type(const struct in6_addr *addr)
if
((
addr
->
s6_addr32
[
0
]
|
addr
->
s6_addr32
[
1
])
==
0
)
{
if
(
addr
->
s6_addr32
[
2
]
==
0
)
{
if
(
addr
->
in6_u
.
u
6_addr32
[
3
]
==
0
)
if
(
addr
->
s
6_addr32
[
3
]
==
0
)
return
IPV6_ADDR_ANY
;
if
(
addr
->
s6_addr32
[
3
]
==
htonl
(
0x00000001
))
...
...
@@ -1071,7 +1071,7 @@ static int ipv6_generate_eui64(u8 *eui, struct net_device *dev)
eui
[
0
]
^=
2
;
return
0
;
case
ARPHRD_ARCNET
:
/* XXX: inherit EUI-64 fro
m
other interface -- yoshfuji */
/* XXX: inherit EUI-64 fro
m
other interface -- yoshfuji */
if
(
dev
->
addr_len
!=
ARCNET_ALEN
)
return
-
1
;
memset
(
eui
,
0
,
7
);
...
...
net/ipv6/exthdrs.c
View file @
ebec1711
...
...
@@ -120,7 +120,7 @@ static int ip6_parse_tlv(struct tlvtype_proc *procs, struct sk_buff *skb)
for
(
curr
=
procs
;
curr
->
type
>=
0
;
curr
++
)
{
if
(
curr
->
type
==
skb
->
nh
.
raw
[
off
])
{
/* type specific length/alignment
checks will be perfomed in the
checks will be perfo
r
med in the
func(). */
if
(
curr
->
func
(
skb
,
off
)
==
0
)
return
0
;
...
...
net/ipv6/ip6_fib.c
View file @
ebec1711
...
...
@@ -85,7 +85,7 @@ static struct fib6_node * fib6_repair_tree(struct fib6_node *fn);
/*
* A routing update causes an increase of the serial number on the
* afected subtree. This allows for cached routes to be asynchronously
* af
f
ected subtree. This allows for cached routes to be asynchronously
* tested when modifications are made to the destination cache as a
* result of redirects, path MTU changes, etc.
*/
...
...
net/ipv6/ip6_input.c
View file @
ebec1711
...
...
@@ -168,11 +168,19 @@ static inline int ip6_input_finish(struct sk_buff *skb)
smp_read_barrier_depends
();
if
(
ipprot
->
flags
&
INET6_PROTO_FINAL
)
{
struct
ipv6hdr
*
hdr
;
if
(
!
cksum_sub
&&
skb
->
ip_summed
==
CHECKSUM_HW
)
{
skb
->
csum
=
csum_sub
(
skb
->
csum
,
csum_partial
(
skb
->
nh
.
raw
,
skb
->
h
.
raw
-
skb
->
nh
.
raw
,
0
));
cksum_sub
++
;
}
hdr
=
skb
->
nh
.
ipv6h
;
if
(
ipv6_addr_is_multicast
(
&
hdr
->
daddr
)
&&
!
ipv6_chk_mcast_addr
(
skb
->
dev
,
&
hdr
->
daddr
,
&
hdr
->
saddr
)
&&
!
ipv6_is_mld
(
skb
,
nexthdr
))
goto
discard
;
}
if
(
!
(
ipprot
->
flags
&
INET6_PROTO_NOPOLICY
)
&&
!
xfrm6_policy_check
(
NULL
,
XFRM_POLICY_IN
,
skb
))
...
...
@@ -211,15 +219,14 @@ int ip6_input(struct sk_buff *skb)
int
ip6_mc_input
(
struct
sk_buff
*
skb
)
{
struct
ipv6hdr
*
hdr
;
int
deliver
=
0
;
int
discard
=
1
;
struct
ipv6hdr
*
hdr
;
int
deliver
;
IP6_INC_STATS_BH
(
Ip6InMcastPkts
);
hdr
=
skb
->
nh
.
ipv6h
;
if
(
ipv6_chk_mcast_addr
(
skb
->
dev
,
&
hdr
->
daddr
,
&
hdr
->
saddr
))
deliver
=
1
;
deliver
=
likely
(
!
(
skb
->
dev
->
flags
&
(
IFF_PROMISC
|
IFF_ALLMULTI
)))
||
ipv6_chk_mcast_addr
(
skb
->
dev
,
&
hdr
->
daddr
,
NULL
)
;
/*
* IPv6 multicast router mode isnt currently supported.
...
...
@@ -238,23 +245,21 @@ int ip6_mc_input(struct sk_buff *skb)
if (deliver) {
skb2 = skb_clone(skb, GFP_ATOMIC);
dst_output(skb2);
} else {
d
iscard = 0
;
skb2 = skb
;
d
st_output(skb)
;
return 0
;
}
dst_output(skb2);
}
}
#endif
if
(
deliver
)
{
discard
=
0
;
if
(
likely
(
deliver
))
{
ip6_input
(
skb
);
return
0
;
}
if
(
discard
)
kfree_skb
(
skb
);
/* discard */
kfree_skb
(
skb
);
return
0
;
}
net/ipv6/ip6_tunnel.c
View file @
ebec1711
...
...
@@ -399,7 +399,7 @@ void ip6ip6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
__u16
len
;
/* If the packet doesn't contain the original IPv6 header we are
in trouble since we might need the source address for furter
in trouble since we might need the source address for furt
h
er
processing of the error. */
read_lock
(
&
ip6ip6_lock
);
...
...
net/ipv6/mcast.c
View file @
ebec1711
...
...
@@ -900,6 +900,33 @@ int ipv6_dev_mc_dec(struct net_device *dev, struct in6_addr *addr)
return
err
;
}
/*
* identify MLD packets for MLD filter exceptions
*/
int
ipv6_is_mld
(
struct
sk_buff
*
skb
,
int
nexthdr
)
{
struct
icmp6hdr
*
pic
;
if
(
nexthdr
!=
IPPROTO_ICMPV6
)
return
0
;
if
(
!
pskb_may_pull
(
skb
,
sizeof
(
struct
icmp6hdr
)))
return
0
;
pic
=
(
struct
icmp6hdr
*
)
skb
->
h
.
raw
;
switch
(
pic
->
icmp6_type
)
{
case
ICMPV6_MGM_QUERY
:
case
ICMPV6_MGM_REPORT
:
case
ICMPV6_MGM_REDUCTION
:
case
ICMPV6_MLD2_REPORT
:
return
1
;
default:
break
;
}
return
0
;
}
/*
* check if the interface/address pair is valid
*/
...
...
@@ -918,7 +945,7 @@ int ipv6_chk_mcast_addr(struct net_device *dev, struct in6_addr *group,
break
;
}
if
(
mc
)
{
if
(
!
ipv6_addr_any
(
src_addr
))
{
if
(
src_addr
&&
!
ipv6_addr_any
(
src_addr
))
{
struct
ip6_sf_list
*
psf
;
spin_lock_bh
(
&
mc
->
mca_lock
);
...
...
net/ipv6/ndisc.c
View file @
ebec1711
This diff is collapsed.
Click to expand it.
net/ipv6/netfilter/ip6t_eui64.c
View file @
ebec1711
...
...
@@ -50,7 +50,7 @@ match(const struct sk_buff *skb,
eui64
[
0
]
|=
0x02
;
i
=
0
;
while
((
skb
->
nh
.
ipv6h
->
saddr
.
in6_u
.
u6_addr8
[
8
+
i
]
==
while
((
skb
->
nh
.
ipv6h
->
saddr
.
s6_addr
[
8
+
i
]
==
eui64
[
i
])
&&
(
i
<
8
))
i
++
;
if
(
i
==
8
)
...
...
net/ipv6/raw.c
View file @
ebec1711
...
...
@@ -222,7 +222,7 @@ static int rawv6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
}
/* ipv4 addr of the socket is invalid. Only the
* unpecified and mapped address have a v4 equivalent.
* un
s
pecified and mapped address have a v4 equivalent.
*/
v4addr
=
LOOPBACK4_IPV6
;
if
(
!
(
addr_type
&
IPV6_ADDR_MULTICAST
))
{
...
...
@@ -306,7 +306,7 @@ static inline int rawv6_rcv_skb(struct sock * sk, struct sk_buff * skb)
* This is next to useless...
* if we demultiplex in network layer we don't need the extra call
* just to queue the skb...
* maybe we could have the network decide up
p
on a hint if it
* maybe we could have the network decide upon a hint if it
* should call raw_rcv for demultiplexing
*/
int
rawv6_rcv
(
struct
sock
*
sk
,
struct
sk_buff
*
skb
)
...
...
@@ -627,7 +627,7 @@ static int rawv6_sendmsg(struct kiocb *iocb, struct sock *sk,
if
(
ipv6_addr_any
(
daddr
))
{
/*
* unspecfied destination address
* unspec
i
fied destination address
* treated as error... is this correct ?
*/
fl6_sock_release
(
flowlabel
);
...
...
net/ipv6/route.c
View file @
ebec1711
...
...
@@ -223,7 +223,7 @@ static struct rt6_info *rt6_best_dflt(struct rt6_info *rt, int oif)
match
=
sprt
;
mpri
=
m
;
if
(
m
>=
12
)
{
/* we choose the last
est
default router if it
/* we choose the last default router if it
* is in (probably) reachable state.
* If route changed, we should do pmtu
* discovery. --yoshfuji
...
...
@@ -563,6 +563,7 @@ static struct dst_entry *ndisc_dst_gc_list;
struct
dst_entry
*
ndisc_dst_alloc
(
struct
net_device
*
dev
,
struct
neighbour
*
neigh
,
struct
in6_addr
*
addr
,
int
(
*
output
)(
struct
sk_buff
*
))
{
struct
rt6_info
*
rt
=
ip6_dst_alloc
();
...
...
@@ -574,11 +575,13 @@ struct dst_entry *ndisc_dst_alloc(struct net_device *dev,
dev_hold
(
dev
);
if
(
neigh
)
neigh_hold
(
neigh
);
else
neigh
=
ndisc_get_neigh
(
dev
,
addr
);
rt
->
rt6i_dev
=
dev
;
rt
->
rt6i_nexthop
=
neigh
;
rt
->
rt6i_expires
=
0
;
rt
->
rt6i_flags
=
RTF_LOCAL
|
RTF_NDISC
;
rt
->
rt6i_flags
=
RTF_LOCAL
;
rt
->
rt6i_metric
=
0
;
atomic_set
(
&
rt
->
u
.
dst
.
__refcnt
,
1
);
rt
->
u
.
dst
.
metrics
[
RTAX_HOPLIMIT
-
1
]
=
255
;
...
...
@@ -832,7 +835,7 @@ int ip6_route_add(struct in6_rtmsg *rtmsg, struct nlmsghdr *nlh, void *_rtattr)
}
}
rt
->
rt6i_flags
=
rtmsg
->
rtmsg_flags
&
~
RTF_NDISC
;
rt
->
rt6i_flags
=
rtmsg
->
rtmsg_flags
;
install_route:
if
(
rta
&&
rta
[
RTA_METRICS
-
1
])
{
...
...
@@ -1125,8 +1128,6 @@ static struct rt6_info * ip6_rt_copy(struct rt6_info *ort)
{
struct
rt6_info
*
rt
=
ip6_dst_alloc
();
BUG_ON
(
ort
->
rt6i_flags
&
RTF_NDISC
);
if
(
rt
)
{
rt
->
u
.
dst
.
input
=
ort
->
u
.
dst
.
input
;
rt
->
u
.
dst
.
output
=
ort
->
u
.
dst
.
output
;
...
...
net/ipv6/xfrm6_policy.c
View file @
ebec1711
...
...
@@ -55,13 +55,6 @@ static struct dst_entry *
__xfrm6_find_bundle
(
struct
flowi
*
fl
,
struct
rtable
*
rt
,
struct
xfrm_policy
*
policy
)
{
struct
dst_entry
*
dst
;
u32
ndisc_bit
=
0
;
if
(
fl
->
proto
==
IPPROTO_ICMPV6
&&
(
fl
->
fl_icmp_type
==
NDISC_NEIGHBOUR_ADVERTISEMENT
||
fl
->
fl_icmp_type
==
NDISC_NEIGHBOUR_SOLICITATION
||
fl
->
fl_icmp_type
==
NDISC_ROUTER_SOLICITATION
))
ndisc_bit
=
RTF_NDISC
;
/* Still not clear if we should set fl->fl6_{src,dst}... */
read_lock_bh
(
&
policy
->
lock
);
...
...
@@ -69,9 +62,6 @@ __xfrm6_find_bundle(struct flowi *fl, struct rtable *rt, struct xfrm_policy *pol
struct
xfrm_dst
*
xdst
=
(
struct
xfrm_dst
*
)
dst
;
struct
in6_addr
fl_dst_prefix
,
fl_src_prefix
;
if
((
xdst
->
u
.
rt6
.
rt6i_flags
&
RTF_NDISC
)
!=
ndisc_bit
)
continue
;
ipv6_addr_prefix
(
&
fl_dst_prefix
,
&
fl
->
fl6_dst
,
xdst
->
u
.
rt6
.
rt6i_dst
.
plen
);
...
...
@@ -169,7 +159,7 @@ __xfrm6_bundle_create(struct xfrm_policy *policy, struct xfrm_state **xfrm, int
dst_prev
->
output
=
dst_prev
->
xfrm
->
type
->
output
;
/* Sheit... I remember I did this right. Apparently,
* it was magically lost, so this code needs audit */
x
->
u
.
rt6
.
rt6i_flags
=
rt0
->
rt6i_flags
&
(
RTCF_BROADCAST
|
RTCF_MULTICAST
|
RTCF_LOCAL
|
RTF_NDISC
);
x
->
u
.
rt6
.
rt6i_flags
=
rt0
->
rt6i_flags
&
(
RTCF_BROADCAST
|
RTCF_MULTICAST
|
RTCF_LOCAL
);
x
->
u
.
rt6
.
rt6i_metric
=
rt0
->
rt6i_metric
;
x
->
u
.
rt6
.
rt6i_node
=
rt0
->
rt6i_node
;
x
->
u
.
rt6
.
rt6i_gateway
=
rt0
->
rt6i_gateway
;
...
...
net/sched/sch_sfq.c
View file @
ebec1711
...
...
@@ -341,6 +341,7 @@ sfq_dequeue(struct Qdisc* sch)
/* Is the slot empty? */
if
(
q
->
qs
[
a
].
qlen
==
0
)
{
q
->
ht
[
q
->
hash
[
a
]]
=
SFQ_DEPTH
;
a
=
q
->
next
[
a
];
if
(
a
==
old_a
)
{
q
->
tail
=
SFQ_DEPTH
;
...
...
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