Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
a25606c8
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
a25606c8
编写于
3月 21, 2008
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
上级
938b93ad
94833dfb
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
152 addition
and
76 deletion
+152
-76
MAINTAINERS
MAINTAINERS
+1
-1
drivers/net/ifb.c
drivers/net/ifb.c
+15
-0
drivers/net/tg3.c
drivers/net/tg3.c
+3
-3
fs/proc/base.c
fs/proc/base.c
+1
-1
include/net/sctp/sctp.h
include/net/sctp/sctp.h
+8
-4
kernel/audit.c
kernel/audit.c
+8
-3
net/bridge/br_fdb.c
net/bridge/br_fdb.c
+1
-1
net/core/netpoll.c
net/core/netpoll.c
+4
-2
net/ipv4/netfilter/ipt_recent.c
net/ipv4/netfilter/ipt_recent.c
+2
-0
net/ipv4/tcp_output.c
net/ipv4/tcp_output.c
+1
-1
net/ipv6/Kconfig
net/ipv6/Kconfig
+3
-2
net/netfilter/nf_conntrack_h323_main.c
net/netfilter/nf_conntrack_h323_main.c
+1
-1
net/sctp/ipv6.c
net/sctp/ipv6.c
+20
-12
net/sctp/protocol.c
net/sctp/protocol.c
+84
-45
未找到文件。
MAINTAINERS
浏览文件 @
a25606c8
...
...
@@ -871,7 +871,7 @@ P: Marcel Holtmann
M: marcel@holtmann.org
P: Maxim Krasnyansky
M: maxk@qualcomm.com
L:
bluez-devel@lists.sf.net
L:
linux-bluetooth@vger.kernel.org
W: http://bluez.sf.net
W: http://www.bluez.org
W: http://www.holtmann.org/linux/bluetooth/
...
...
drivers/net/ifb.c
浏览文件 @
a25606c8
...
...
@@ -35,6 +35,7 @@
#include <linux/moduleparam.h>
#include <net/pkt_sched.h>
#include <net/net_namespace.h>
#include <linux/lockdep.h>
#define TX_TIMEOUT (2*HZ)
...
...
@@ -227,6 +228,16 @@ static struct rtnl_link_ops ifb_link_ops __read_mostly = {
module_param
(
numifbs
,
int
,
0
);
MODULE_PARM_DESC
(
numifbs
,
"Number of ifb devices"
);
/*
* dev_ifb->queue_lock is usually taken after dev->ingress_lock,
* reversely to e.g. qdisc_lock_tree(). It should be safe until
* ifb doesn't take dev->queue_lock with dev_ifb->ingress_lock.
* But lockdep should know that ifb has different locks from dev.
*/
static
struct
lock_class_key
ifb_queue_lock_key
;
static
struct
lock_class_key
ifb_ingress_lock_key
;
static
int
__init
ifb_init_one
(
int
index
)
{
struct
net_device
*
dev_ifb
;
...
...
@@ -246,6 +257,10 @@ static int __init ifb_init_one(int index)
err
=
register_netdevice
(
dev_ifb
);
if
(
err
<
0
)
goto
err
;
lockdep_set_class
(
&
dev_ifb
->
queue_lock
,
&
ifb_queue_lock_key
);
lockdep_set_class
(
&
dev_ifb
->
ingress_lock
,
&
ifb_ingress_lock_key
);
return
0
;
err:
...
...
drivers/net/tg3.c
浏览文件 @
a25606c8
...
...
@@ -64,8 +64,8 @@
#define DRV_MODULE_NAME "tg3"
#define PFX DRV_MODULE_NAME ": "
#define DRV_MODULE_VERSION "3.8
7
"
#define DRV_MODULE_RELDATE "
December 20, 2007
"
#define DRV_MODULE_VERSION "3.8
8
"
#define DRV_MODULE_RELDATE "
March 20, 2008
"
#define TG3_DEF_MAC_MODE 0
#define TG3_DEF_RX_MODE 0
...
...
@@ -11841,7 +11841,7 @@ static int __devinit tg3_get_device_address(struct tg3 *tp)
}
if
(
!
is_valid_ether_addr
(
&
dev
->
dev_addr
[
0
]))
{
#ifdef CONFIG_SPARC
64
#ifdef CONFIG_SPARC
if
(
!
tg3_get_default_macaddr_sparc
(
tp
))
return
0
;
#endif
...
...
fs/proc/base.c
浏览文件 @
a25606c8
...
...
@@ -2270,7 +2270,7 @@ static const struct pid_entry tgid_base_stuff[] = {
DIR
(
"fd"
,
S_IRUSR
|
S_IXUSR
,
fd
),
DIR
(
"fdinfo"
,
S_IRUSR
|
S_IXUSR
,
fdinfo
),
#ifdef CONFIG_NET
DIR
(
"net"
,
S_IRUGO
|
S_IXU
SR
,
net
),
DIR
(
"net"
,
S_IRUGO
|
S_IXU
GO
,
net
),
#endif
REG
(
"environ"
,
S_IRUSR
,
environ
),
INF
(
"auxv"
,
S_IRUSR
,
pid_auxv
),
...
...
include/net/sctp/sctp.h
浏览文件 @
a25606c8
...
...
@@ -375,15 +375,19 @@ static inline void sctp_sysctl_unregister(void) { return; }
#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
int
sctp_v6_init
(
void
);
void
sctp_v6_exit
(
void
);
void
sctp_v6_pf_init
(
void
);
void
sctp_v6_pf_exit
(
void
);
int
sctp_v6_protosw_init
(
void
);
void
sctp_v6_protosw_exit
(
void
);
int
sctp_v6_add_protocol
(
void
);
void
sctp_v6_del_protocol
(
void
);
#else
/* #ifdef defined(CONFIG_IPV6) */
static
inline
int
sctp_v6_init
(
void
)
{
return
0
;
}
static
inline
void
sctp_v6_exit
(
void
)
{
return
;
}
static
inline
void
sctp_v6_pf_init
(
void
)
{
return
0
;
}
static
inline
void
sctp_v6_pf_exit
(
void
)
{
return
;
}
static
inline
int
sctp_v6_protosw_init
(
void
)
{
return
0
;
}
static
inline
void
sctp_v6_protosw_exit
(
void
)
{
return
;
}
static
inline
int
sctp_v6_add_protocol
(
void
)
{
return
0
;
}
static
inline
void
sctp_v6_del_protocol
(
void
)
{
return
;
}
...
...
kernel/audit.c
浏览文件 @
a25606c8
...
...
@@ -78,9 +78,13 @@ static int audit_default;
/* If auditing cannot proceed, audit_failure selects what happens. */
static
int
audit_failure
=
AUDIT_FAIL_PRINTK
;
/* If audit records are to be written to the netlink socket, audit_pid
* contains the (non-zero) pid. */
/*
* If audit records are to be written to the netlink socket, audit_pid
* contains the pid of the auditd process and audit_nlk_pid contains
* the pid to use to send netlink messages to that process.
*/
int
audit_pid
;
static
int
audit_nlk_pid
;
/* If audit_rate_limit is non-zero, limit the rate of sending audit records
* to that number per second. This prevents DoS attacks, but results in
...
...
@@ -350,7 +354,7 @@ static int kauditd_thread(void *dummy)
wake_up
(
&
audit_backlog_wait
);
if
(
skb
)
{
if
(
audit_pid
)
{
int
err
=
netlink_unicast
(
audit_sock
,
skb
,
audit_pid
,
0
);
int
err
=
netlink_unicast
(
audit_sock
,
skb
,
audit_
nlk_
pid
,
0
);
if
(
err
<
0
)
{
BUG_ON
(
err
!=
-
ECONNREFUSED
);
/* Shoudn't happen */
printk
(
KERN_ERR
"audit: *NO* daemon at audit_pid=%d
\n
"
,
audit_pid
);
...
...
@@ -626,6 +630,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
sid
,
1
);
audit_pid
=
new_pid
;
audit_nlk_pid
=
NETLINK_CB
(
skb
).
pid
;
}
if
(
status_get
->
mask
&
AUDIT_STATUS_RATE_LIMIT
)
err
=
audit_set_rate_limit
(
status_get
->
rate_limit
,
...
...
net/bridge/br_fdb.c
浏览文件 @
a25606c8
...
...
@@ -136,7 +136,7 @@ void br_fdb_cleanup(unsigned long _data)
this_timer
=
f
->
ageing_timer
+
delay
;
if
(
time_before_eq
(
this_timer
,
jiffies
))
fdb_delete
(
f
);
else
if
(
t
his_timer
<
next_timer
)
else
if
(
t
ime_before
(
this_timer
,
next_timer
)
)
next_timer
=
this_timer
;
}
}
...
...
net/core/netpoll.c
浏览文件 @
a25606c8
...
...
@@ -215,10 +215,12 @@ static void zap_completion_queue(void)
while
(
clist
!=
NULL
)
{
struct
sk_buff
*
skb
=
clist
;
clist
=
clist
->
next
;
if
(
skb
->
destructor
)
if
(
skb
->
destructor
)
{
atomic_inc
(
&
skb
->
users
);
dev_kfree_skb_any
(
skb
);
/* put this one back */
else
}
else
{
__kfree_skb
(
skb
);
}
}
}
...
...
net/ipv4/netfilter/ipt_recent.c
浏览文件 @
a25606c8
...
...
@@ -252,6 +252,8 @@ recent_mt_check(const char *tablename, const void *ip,
if
((
info
->
check_set
&
(
IPT_RECENT_SET
|
IPT_RECENT_REMOVE
))
&&
(
info
->
seconds
||
info
->
hit_count
))
return
false
;
if
(
info
->
hit_count
>
ip_pkt_list_tot
)
return
false
;
if
(
info
->
name
[
0
]
==
'\0'
||
strnlen
(
info
->
name
,
IPT_RECENT_NAME_LEN
)
==
IPT_RECENT_NAME_LEN
)
return
false
;
...
...
net/ipv4/tcp_output.c
浏览文件 @
a25606c8
...
...
@@ -255,7 +255,7 @@ static u16 tcp_select_window(struct sock *sk)
*
* Relax Will Robinson.
*/
new_win
=
cur_win
;
new_win
=
ALIGN
(
cur_win
,
1
<<
tp
->
rx_opt
.
rcv_wscale
)
;
}
tp
->
rcv_wnd
=
new_win
;
tp
->
rcv_wup
=
tp
->
rcv_nxt
;
...
...
net/ipv6/Kconfig
浏览文件 @
a25606c8
...
...
@@ -179,11 +179,12 @@ config IPV6_SIT
Saying M here will produce a module called sit.ko. If unsure, say Y.
config IPV6_TUNNEL
tristate "IPv6: IP
v6-in-IPv6 tunnel
"
tristate "IPv6: IP
-in-IPv6 tunnel (RFC2473)
"
select INET6_TUNNEL
depends on IPV6
---help---
Support for IPv6-in-IPv6 tunnels described in RFC 2473.
Support for IPv6-in-IPv6 and IPv4-in-IPv6 tunnels described in
RFC 2473.
If unsure, say N.
...
...
net/netfilter/nf_conntrack_h323_main.c
浏览文件 @
a25606c8
...
...
@@ -842,7 +842,7 @@ static int process_setup(struct sk_buff *skb, struct nf_conn *ct,
set_h225_addr
=
rcu_dereference
(
set_h225_addr_hook
);
if
((
setup
->
options
&
eSetup_UUIE_destCallSignalAddress
)
&&
(
set_h225_addr
)
&&
ct
->
status
&
&
IPS_NAT_MASK
&&
(
set_h225_addr
)
&&
ct
->
status
&
IPS_NAT_MASK
&&
get_h225_addr
(
ct
,
*
data
,
&
setup
->
destCallSignalAddress
,
&
addr
,
&
port
)
&&
memcmp
(
&
addr
,
&
ct
->
tuplehash
[
!
dir
].
tuple
.
src
.
u3
,
sizeof
(
addr
)))
{
...
...
net/sctp/ipv6.c
浏览文件 @
a25606c8
...
...
@@ -1015,15 +1015,24 @@ static struct sctp_pf sctp_pf_inet6 = {
};
/* Initialize IPv6 support and register with socket layer. */
int
sctp_v6
_init
(
void
)
void
sctp_v6_pf
_init
(
void
)
{
int
rc
;
/* Register the SCTP specific PF_INET6 functions. */
sctp_register_pf
(
&
sctp_pf_inet6
,
PF_INET6
);
/* Register the SCTP specific AF_INET6 functions. */
sctp_register_af
(
&
sctp_af_inet6
);
}
void
sctp_v6_pf_exit
(
void
)
{
list_del
(
&
sctp_af_inet6
.
list
);
}
/* Initialize IPv6 support and register with socket layer. */
int
sctp_v6_protosw_init
(
void
)
{
int
rc
;
rc
=
proto_register
(
&
sctpv6_prot
,
1
);
if
(
rc
)
...
...
@@ -1036,6 +1045,14 @@ int sctp_v6_init(void)
return
0
;
}
void
sctp_v6_protosw_exit
(
void
)
{
inet6_unregister_protosw
(
&
sctpv6_seqpacket_protosw
);
inet6_unregister_protosw
(
&
sctpv6_stream_protosw
);
proto_unregister
(
&
sctpv6_prot
);
}
/* Register with inet6 layer. */
int
sctp_v6_add_protocol
(
void
)
{
...
...
@@ -1048,15 +1065,6 @@ int sctp_v6_add_protocol(void)
return
0
;
}
/* IPv6 specific exit support. */
void
sctp_v6_exit
(
void
)
{
inet6_unregister_protosw
(
&
sctpv6_seqpacket_protosw
);
inet6_unregister_protosw
(
&
sctpv6_stream_protosw
);
proto_unregister
(
&
sctpv6_prot
);
list_del
(
&
sctp_af_inet6
.
list
);
}
/* Unregister with inet6 layer. */
void
sctp_v6_del_protocol
(
void
)
{
...
...
net/sctp/protocol.c
浏览文件 @
a25606c8
...
...
@@ -995,6 +995,58 @@ static void cleanup_sctp_mibs(void)
free_percpu
(
sctp_statistics
[
1
]);
}
static
void
sctp_v4_pf_init
(
void
)
{
/* Initialize the SCTP specific PF functions. */
sctp_register_pf
(
&
sctp_pf_inet
,
PF_INET
);
sctp_register_af
(
&
sctp_af_inet
);
}
static
void
sctp_v4_pf_exit
(
void
)
{
list_del
(
&
sctp_af_inet
.
list
);
}
static
int
sctp_v4_protosw_init
(
void
)
{
int
rc
;
rc
=
proto_register
(
&
sctp_prot
,
1
);
if
(
rc
)
return
rc
;
/* Register SCTP(UDP and TCP style) with socket layer. */
inet_register_protosw
(
&
sctp_seqpacket_protosw
);
inet_register_protosw
(
&
sctp_stream_protosw
);
return
0
;
}
static
void
sctp_v4_protosw_exit
(
void
)
{
inet_unregister_protosw
(
&
sctp_stream_protosw
);
inet_unregister_protosw
(
&
sctp_seqpacket_protosw
);
proto_unregister
(
&
sctp_prot
);
}
static
int
sctp_v4_add_protocol
(
void
)
{
/* Register notifier for inet address additions/deletions. */
register_inetaddr_notifier
(
&
sctp_inetaddr_notifier
);
/* Register SCTP with inet layer. */
if
(
inet_add_protocol
(
&
sctp_protocol
,
IPPROTO_SCTP
)
<
0
)
return
-
EAGAIN
;
return
0
;
}
static
void
sctp_v4_del_protocol
(
void
)
{
inet_del_protocol
(
&
sctp_protocol
,
IPPROTO_SCTP
);
unregister_inetaddr_notifier
(
&
sctp_inetaddr_notifier
);
}
/* Initialize the universe into something sensible. */
SCTP_STATIC
__init
int
sctp_init
(
void
)
{
...
...
@@ -1038,8 +1090,6 @@ SCTP_STATIC __init int sctp_init(void)
/* Initialize object count debugging. */
sctp_dbg_objcnt_init
();
/* Initialize the SCTP specific PF functions. */
sctp_register_pf
(
&
sctp_pf_inet
,
PF_INET
);
/*
* 14. Suggested SCTP Protocol Parameter Values
*/
...
...
@@ -1197,19 +1247,22 @@ SCTP_STATIC __init int sctp_init(void)
sctp_sysctl_register
();
INIT_LIST_HEAD
(
&
sctp_address_families
);
sctp_register_af
(
&
sctp_af_inet
);
sctp_v4_pf_init
();
sctp_v6_pf_init
();
status
=
proto_register
(
&
sctp_prot
,
1
);
if
(
status
)
goto
err_proto_register
;
/* Initialize the local address list. */
INIT_LIST_HEAD
(
&
sctp_local_addr_list
);
spin_lock_init
(
&
sctp_local_addr_lock
);
sctp_get_local_addr_list
();
/* Register SCTP(UDP and TCP style) with socket layer. */
inet_register_protosw
(
&
sctp_seqpacket_protosw
);
inet_register_protosw
(
&
sctp_stream_protosw
);
status
=
sctp_v4_protosw_init
();
status
=
sctp_v6_init
();
if
(
status
)
goto
err_v6_init
;
goto
err_protosw_init
;
status
=
sctp_v6_protosw_init
();
if
(
status
)
goto
err_v6_protosw_init
;
/* Initialize the control inode/socket for handling OOTB packets. */
if
((
status
=
sctp_ctl_sock_init
()))
{
...
...
@@ -1218,19 +1271,9 @@ SCTP_STATIC __init int sctp_init(void)
goto
err_ctl_sock_init
;
}
/* Initialize the local address list. */
INIT_LIST_HEAD
(
&
sctp_local_addr_list
);
spin_lock_init
(
&
sctp_local_addr_lock
);
sctp_get_local_addr_list
();
/* Register notifier for inet address additions/deletions. */
register_inetaddr_notifier
(
&
sctp_inetaddr_notifier
);
/* Register SCTP with inet layer. */
if
(
inet_add_protocol
(
&
sctp_protocol
,
IPPROTO_SCTP
)
<
0
)
{
status
=
-
EAGAIN
;
status
=
sctp_v4_add_protocol
();
if
(
status
)
goto
err_add_protocol
;
}
/* Register SCTP with inet6 layer. */
status
=
sctp_v6_add_protocol
();
...
...
@@ -1241,18 +1284,18 @@ SCTP_STATIC __init int sctp_init(void)
out:
return
status
;
err_v6_add_protocol:
inet_del_protocol
(
&
sctp_protocol
,
IPPROTO_SCTP
);
unregister_inetaddr_notifier
(
&
sctp_inetaddr_notifier
);
sctp_v6_del_protocol
();
err_add_protocol:
sctp_
free_local_addr_list
();
sctp_
v4_del_protocol
();
sock_release
(
sctp_ctl_socket
);
err_ctl_sock_init:
sctp_v6_exit
();
err_v6_init:
inet_unregister_protosw
(
&
sctp_stream_protosw
);
inet_unregister_protosw
(
&
sctp_seqpacket_protosw
);
proto_unregister
(
&
sctp_prot
);
err_proto_register:
sctp_v6_protosw_exit
();
err_v6_protosw_init:
sctp_v4_protosw_exit
();
err_protosw_init:
sctp_free_local_addr_list
();
sctp_v4_pf_exit
();
sctp_v6_pf_exit
();
sctp_sysctl_unregister
();
list_del
(
&
sctp_af_inet
.
list
);
free_pages
((
unsigned
long
)
sctp_port_hashtable
,
...
...
@@ -1285,23 +1328,21 @@ SCTP_STATIC __exit void sctp_exit(void)
/* Unregister with inet6/inet layers. */
sctp_v6_del_protocol
();
inet_del_protocol
(
&
sctp_protocol
,
IPPROTO_SCTP
);
/* Unregister notifier for inet address additions/deletions. */
unregister_inetaddr_notifier
(
&
sctp_inetaddr_notifier
);
/* Free the local address list. */
sctp_free_local_addr_list
();
sctp_v4_del_protocol
();
/* Free the control endpoint. */
sock_release
(
sctp_ctl_socket
);
/* Cleanup v6 initializations. */
sctp_v6_exit
();
/* Free protosw registrations */
sctp_v6_protosw_exit
();
sctp_v4_protosw_exit
();
/* Free the local address list. */
sctp_free_local_addr_list
();
/* Unregister with socket layer. */
inet_unregister_protosw
(
&
sctp_stream_protosw
);
inet_unregister_protosw
(
&
sctp_seqpacket_protosw
);
sctp_v6_pf_exit
(
);
sctp_v4_pf_exit
(
);
sctp_sysctl_unregister
();
list_del
(
&
sctp_af_inet
.
list
);
...
...
@@ -1320,8 +1361,6 @@ SCTP_STATIC __exit void sctp_exit(void)
kmem_cache_destroy
(
sctp_chunk_cachep
);
kmem_cache_destroy
(
sctp_bucket_cachep
);
proto_unregister
(
&
sctp_prot
);
}
module_init
(
sctp_init
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录