Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
2aec609f
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
2aec609f
编写于
7月 14, 2008
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: net/netfilter/nf_conntrack_proto_tcp.c
上级
4c889498
9076689a
变更
22
隐藏空白更改
内联
并排
Showing
22 changed file
with
307 addition
and
108 deletion
+307
-108
Documentation/networking/ip-sysctl.txt
Documentation/networking/ip-sysctl.txt
+214
-42
drivers/net/arm/ixp4xx_eth.c
drivers/net/arm/ixp4xx_eth.c
+1
-2
drivers/net/tun.c
drivers/net/tun.c
+6
-0
drivers/net/wireless/libertas/scan.c
drivers/net/wireless/libertas/scan.c
+2
-2
drivers/net/wireless/rt2x00/rt2400pci.c
drivers/net/wireless/rt2x00/rt2400pci.c
+11
-0
drivers/net/wireless/rt2x00/rt2500pci.c
drivers/net/wireless/rt2x00/rt2500pci.c
+11
-0
drivers/net/wireless/rt2x00/rt2500usb.c
drivers/net/wireless/rt2x00/rt2500usb.c
+7
-0
drivers/net/wireless/rt2x00/rt61pci.c
drivers/net/wireless/rt2x00/rt61pci.c
+9
-0
drivers/net/wireless/rt2x00/rt73usb.c
drivers/net/wireless/rt2x00/rt73usb.c
+9
-0
drivers/net/wireless/zd1211rw/zd_mac.c
drivers/net/wireless/zd1211rw/zd_mac.c
+1
-0
include/linux/xfrm.h
include/linux/xfrm.h
+1
-0
net/ipv4/fib_trie.c
net/ipv4/fib_trie.c
+6
-11
net/ipv4/netfilter/nf_nat_snmp_basic.c
net/ipv4/netfilter/nf_nat_snmp_basic.c
+1
-1
net/ipv4/tcp_probe.c
net/ipv4/tcp_probe.c
+1
-1
net/ipv6/exthdrs.c
net/ipv6/exthdrs.c
+1
-1
net/mac80211/rc80211_pid.h
net/mac80211/rc80211_pid.h
+0
-5
net/mac80211/rc80211_pid_algo.c
net/mac80211/rc80211_pid_algo.c
+13
-18
net/netfilter/nf_conntrack_proto_tcp.c
net/netfilter/nf_conntrack_proto_tcp.c
+8
-2
net/netlabel/netlabel_cipso_v4.c
net/netlabel/netlabel_cipso_v4.c
+1
-6
net/netlabel/netlabel_mgmt.c
net/netlabel/netlabel_mgmt.c
+2
-10
net/netlabel/netlabel_unlabeled.c
net/netlabel/netlabel_unlabeled.c
+1
-5
net/xfrm/xfrm_user.c
net/xfrm/xfrm_user.c
+1
-2
未找到文件。
Documentation/networking/ip-sysctl.txt
浏览文件 @
2aec609f
...
@@ -148,9 +148,9 @@ tcp_available_congestion_control - STRING
...
@@ -148,9 +148,9 @@ tcp_available_congestion_control - STRING
but not loaded.
but not loaded.
tcp_base_mss - INTEGER
tcp_base_mss - INTEGER
The initial value of search_low to be used by
Packetization L
ayer
The initial value of search_low to be used by
the packetization l
ayer
Path MTU
D
iscovery (MTU probing). If MTU probing is enabled,
Path MTU
d
iscovery (MTU probing). If MTU probing is enabled,
this is the inital MSS used by the connection.
this is the init
i
al MSS used by the connection.
tcp_congestion_control - STRING
tcp_congestion_control - STRING
Set the congestion control algorithm to be used for new
Set the congestion control algorithm to be used for new
...
@@ -185,10 +185,9 @@ tcp_frto - INTEGER
...
@@ -185,10 +185,9 @@ tcp_frto - INTEGER
timeouts. It is particularly beneficial in wireless environments
timeouts. It is particularly beneficial in wireless environments
where packet loss is typically due to random radio interference
where packet loss is typically due to random radio interference
rather than intermediate router congestion. F-RTO is sender-side
rather than intermediate router congestion. F-RTO is sender-side
only modification. Therefore it does not require any support from
only modification. Therefore it does not require any support from
the peer, but in a typical case, however, where wireless link is
the peer.
the local access link and most of the data flows downlink, the
faraway servers should have F-RTO enabled to take advantage of it.
If set to 1, basic version is enabled. 2 enables SACK enhanced
If set to 1, basic version is enabled. 2 enables SACK enhanced
F-RTO if flow uses SACK. The basic version can be used also when
F-RTO if flow uses SACK. The basic version can be used also when
SACK is in use though scenario(s) with it exists where F-RTO
SACK is in use though scenario(s) with it exists where F-RTO
...
@@ -276,7 +275,7 @@ tcp_mem - vector of 3 INTEGERs: min, pressure, max
...
@@ -276,7 +275,7 @@ tcp_mem - vector of 3 INTEGERs: min, pressure, max
memory.
memory.
tcp_moderate_rcvbuf - BOOLEAN
tcp_moderate_rcvbuf - BOOLEAN
If set, TCP performs receive buffer autotuning, attempting to
If set, TCP performs receive buffer auto
-
tuning, attempting to
automatically size the buffer (no greater than tcp_rmem[2]) to
automatically size the buffer (no greater than tcp_rmem[2]) to
match the size required by the path for full throughput. Enabled by
match the size required by the path for full throughput. Enabled by
default.
default.
...
@@ -336,7 +335,7 @@ tcp_rmem - vector of 3 INTEGERs: min, default, max
...
@@ -336,7 +335,7 @@ tcp_rmem - vector of 3 INTEGERs: min, default, max
pressure.
pressure.
Default: 8K
Default: 8K
default:
default
size of receive buffer used by TCP sockets.
default:
initial
size of receive buffer used by TCP sockets.
This value overrides net.core.rmem_default used by other protocols.
This value overrides net.core.rmem_default used by other protocols.
Default: 87380 bytes. This value results in window of 65535 with
Default: 87380 bytes. This value results in window of 65535 with
default setting of tcp_adv_win_scale and tcp_app_win:0 and a bit
default setting of tcp_adv_win_scale and tcp_app_win:0 and a bit
...
@@ -344,8 +343,10 @@ tcp_rmem - vector of 3 INTEGERs: min, default, max
...
@@ -344,8 +343,10 @@ tcp_rmem - vector of 3 INTEGERs: min, default, max
max: maximal size of receive buffer allowed for automatically
max: maximal size of receive buffer allowed for automatically
selected receiver buffers for TCP socket. This value does not override
selected receiver buffers for TCP socket. This value does not override
net.core.rmem_max, "static" selection via SO_RCVBUF does not use this.
net.core.rmem_max. Calling setsockopt() with SO_RCVBUF disables
Default: 87380*2 bytes.
automatic tuning of that socket's receive buffer size, in which
case this value is ignored.
Default: between 87380B and 4MB, depending on RAM size.
tcp_sack - BOOLEAN
tcp_sack - BOOLEAN
Enable select acknowledgments (SACKS).
Enable select acknowledgments (SACKS).
...
@@ -358,7 +359,7 @@ tcp_slow_start_after_idle - BOOLEAN
...
@@ -358,7 +359,7 @@ tcp_slow_start_after_idle - BOOLEAN
Default: 1
Default: 1
tcp_stdurg - BOOLEAN
tcp_stdurg - BOOLEAN
Use the Host requirements interpretation of the TCP urg pointer field.
Use the Host requirements interpretation of the TCP urg
ent
pointer field.
Most hosts use the older BSD interpretation, so if you turn this on
Most hosts use the older BSD interpretation, so if you turn this on
Linux might not communicate correctly with them.
Linux might not communicate correctly with them.
Default: FALSE
Default: FALSE
...
@@ -371,12 +372,12 @@ tcp_synack_retries - INTEGER
...
@@ -371,12 +372,12 @@ tcp_synack_retries - INTEGER
tcp_syncookies - BOOLEAN
tcp_syncookies - BOOLEAN
Only valid when the kernel was compiled with CONFIG_SYNCOOKIES
Only valid when the kernel was compiled with CONFIG_SYNCOOKIES
Send out syncookies when the syn backlog queue of a socket
Send out syncookies when the syn backlog queue of a socket
overflows. This is to prevent against the common '
syn
flood attack'
overflows. This is to prevent against the common '
SYN
flood attack'
Default: FALSE
Default: FALSE
Note, that syncookies is fallback facility.
Note, that syncookies is fallback facility.
It MUST NOT be used to help highly loaded servers to stand
It MUST NOT be used to help highly loaded servers to stand
against legal connection rate. If you see
syn
flood warnings
against legal connection rate. If you see
SYN
flood warnings
in your logs, but investigation shows that they occur
in your logs, but investigation shows that they occur
because of overload with legal connections, you should tune
because of overload with legal connections, you should tune
another parameters until this warning disappear.
another parameters until this warning disappear.
...
@@ -386,7 +387,7 @@ tcp_syncookies - BOOLEAN
...
@@ -386,7 +387,7 @@ tcp_syncookies - BOOLEAN
to use TCP extensions, can result in serious degradation
to use TCP extensions, can result in serious degradation
of some services (f.e. SMTP relaying), visible not by you,
of some services (f.e. SMTP relaying), visible not by you,
but your clients and relays, contacting you. While you see
but your clients and relays, contacting you. While you see
syn
flood warnings in logs not being really flooded, your server
SYN
flood warnings in logs not being really flooded, your server
is seriously misconfigured.
is seriously misconfigured.
tcp_syn_retries - INTEGER
tcp_syn_retries - INTEGER
...
@@ -419,19 +420,21 @@ tcp_window_scaling - BOOLEAN
...
@@ -419,19 +420,21 @@ tcp_window_scaling - BOOLEAN
Enable window scaling as defined in RFC1323.
Enable window scaling as defined in RFC1323.
tcp_wmem - vector of 3 INTEGERs: min, default, max
tcp_wmem - vector of 3 INTEGERs: min, default, max
min: Amount of memory reserved for send buffers for TCP socket.
min: Amount of memory reserved for send buffers for TCP socket
s
.
Each TCP socket has rights to use it due to fact of its birth.
Each TCP socket has rights to use it due to fact of its birth.
Default: 4K
Default: 4K
default:
Amount of memory allowed for send buffers for TCP socket
default:
initial size of send buffer used by TCP sockets. This
by default. This value overrides net.core.wmem_default used
value overrides net.core.wmem_default used by other protocols.
by other protocols, i
t is usually lower than net.core.wmem_default.
I
t is usually lower than net.core.wmem_default.
Default: 16K
Default: 16K
max: Maximal amount of memory allowed for automatically selected
max: Maximal amount of memory allowed for automatically tuned
send buffers for TCP socket. This value does not override
send buffers for TCP sockets. This value does not override
net.core.wmem_max, "static" selection via SO_SNDBUF does not use this.
net.core.wmem_max. Calling setsockopt() with SO_SNDBUF disables
Default: 128K
automatic tuning of that socket's send buffer size, in which case
this value is ignored.
Default: between 64K and 4MB, depending on RAM size.
tcp_workaround_signed_windows - BOOLEAN
tcp_workaround_signed_windows - BOOLEAN
If set, assume no receipt of a window scaling option means the
If set, assume no receipt of a window scaling option means the
...
@@ -1073,24 +1076,193 @@ bridge-nf-filter-pppoe-tagged - BOOLEAN
...
@@ -1073,24 +1076,193 @@ bridge-nf-filter-pppoe-tagged - BOOLEAN
Default: 1
Default: 1
UNDOCUMENTED:
proc/sys/net/sctp/* Variables:
addip_enable - BOOLEAN
Enable or disable extension of Dynamic Address Reconfiguration
(ADD-IP) functionality specified in RFC5061. This extension provides
the ability to dynamically add and remove new addresses for the SCTP
associations.
1: Enable extension.
0: Disable extension.
Default: 0
addip_noauth_enable - BOOLEAN
Dynamic Address Reconfiguration (ADD-IP) requires the use of
authentication to protect the operations of adding or removing new
addresses. This requirement is mandated so that unauthorized hosts
would not be able to hijack associations. However, older
implementations may not have implemented this requirement while
allowing the ADD-IP extension. For reasons of interoperability,
we provide this variable to control the enforcement of the
authentication requirement.
1: Allow ADD-IP extension to be used without authentication. This
should only be set in a closed environment for interoperability
with older implementations.
0: Enforce the authentication requirement
Default: 0
auth_enable - BOOLEAN
Enable or disable Authenticated Chunks extension. This extension
provides the ability to send and receive authenticated chunks and is
required for secure operation of Dynamic Address Reconfiguration
(ADD-IP) extension.
1: Enable this extension.
0: Disable this extension.
Default: 0
prsctp_enable - BOOLEAN
Enable or disable the Partial Reliability extension (RFC3758) which
is used to notify peers that a given DATA should no longer be expected.
1: Enable extension
0: Disable
Default: 1
max_burst - INTEGER
The limit of the number of new packets that can be initially sent. It
controls how bursty the generated traffic can be.
Default: 4
association_max_retrans - INTEGER
Set the maximum number for retransmissions that an association can
attempt deciding that the remote end is unreachable. If this value
is exceeded, the association is terminated.
Default: 10
max_init_retransmits - INTEGER
The maximum number of retransmissions of INIT and COOKIE-ECHO chunks
that an association will attempt before declaring the destination
unreachable and terminating.
Default: 8
path_max_retrans - INTEGER
The maximum number of retransmissions that will be attempted on a given
path. Once this threshold is exceeded, the path is considered
unreachable, and new traffic will use a different path when the
association is multihomed.
Default: 5
rto_initial - INTEGER
The initial round trip timeout value in milliseconds that will be used
in calculating round trip times. This is the initial time interval
for retransmissions.
Default: 3000
dev_weight FIXME
rto_max - INTEGER
discovery_slots FIXME
The maximum value (in milliseconds) of the round trip timeout. This
discovery_timeout FIXME
is the largest time interval that can elapse between retransmissions.
fast_poll_increase FIXME
ip6_queue_maxlen FIXME
Default: 60000
lap_keepalive_time FIXME
lo_cong FIXME
rto_min - INTEGER
max_baud_rate FIXME
The minimum value (in milliseconds) of the round trip timeout. This
max_dgram_qlen FIXME
is the smallest time interval the can elapse between retransmissions.
max_noreply_time FIXME
max_tx_data_size FIXME
Default: 1000
max_tx_window FIXME
min_tx_turn_time FIXME
hb_interval - INTEGER
mod_cong FIXME
The interval (in milliseconds) between HEARTBEAT chunks. These chunks
no_cong FIXME
are sent at the specified interval on idle paths to probe the state of
no_cong_thresh FIXME
a given path between 2 associations.
slot_timeout FIXME
warn_noreply_time FIXME
Default: 30000
sack_timeout - INTEGER
The amount of time (in milliseconds) that the implementation will wait
to send a SACK.
Default: 200
valid_cookie_life - INTEGER
The default lifetime of the SCTP cookie (in milliseconds). The cookie
is used during association establishment.
Default: 60000
cookie_preserve_enable - BOOLEAN
Enable or disable the ability to extend the lifetime of the SCTP cookie
that is used during the establishment phase of SCTP association
1: Enable cookie lifetime extension.
0: Disable
Default: 1
rcvbuf_policy - INTEGER
Determines if the receive buffer is attributed to the socket or to
association. SCTP supports the capability to create multiple
associations on a single socket. When using this capability, it is
possible that a single stalled association that's buffering a lot
of data may block other associations from delivering their data by
consuming all of the receive buffer space. To work around this,
the rcvbuf_policy could be set to attribute the receiver buffer space
to each association instead of the socket. This prevents the described
blocking.
1: rcvbuf space is per association
0: recbuf space is per socket
Default: 0
sndbuf_policy - INTEGER
Similar to rcvbuf_policy above, this applies to send buffer space.
1: Send buffer is tracked per association
0: Send buffer is tracked per socket.
Default: 0
sctp_mem - vector of 3 INTEGERs: min, pressure, max
Number of pages allowed for queueing by all SCTP sockets.
min: Below this number of pages SCTP is not bothered about its
memory appetite. When amount of memory allocated by SCTP exceeds
this number, SCTP starts to moderate memory usage.
pressure: This value was introduced to follow format of tcp_mem.
max: Number of pages allowed for queueing by all SCTP sockets.
Default is calculated at boot time from amount of available memory.
sctp_rmem - vector of 3 INTEGERs: min, default, max
See tcp_rmem for a description.
sctp_wmem - vector of 3 INTEGERs: min, default, max
See tcp_wmem for a description.
UNDOCUMENTED:
/proc/sys/net/core/*
dev_weight FIXME
/proc/sys/net/unix/*
max_dgram_qlen FIXME
/proc/sys/net/irda/*
fast_poll_increase FIXME
warn_noreply_time FIXME
discovery_slots FIXME
slot_timeout FIXME
max_baud_rate FIXME
discovery_timeout FIXME
lap_keepalive_time FIXME
max_noreply_time FIXME
max_tx_data_size FIXME
max_tx_window FIXME
min_tx_turn_time FIXME
drivers/net/arm/ixp4xx_eth.c
浏览文件 @
2aec609f
...
@@ -522,7 +522,6 @@ static int eth_poll(struct napi_struct *napi, int budget)
...
@@ -522,7 +522,6 @@ static int eth_poll(struct napi_struct *napi, int budget)
#endif
#endif
if
((
n
=
queue_get_desc
(
rxq
,
port
,
0
))
<
0
)
{
if
((
n
=
queue_get_desc
(
rxq
,
port
,
0
))
<
0
)
{
received
=
0
;
/* No packet received */
#if DEBUG_RX
#if DEBUG_RX
printk
(
KERN_DEBUG
"%s: eth_poll netif_rx_complete
\n
"
,
printk
(
KERN_DEBUG
"%s: eth_poll netif_rx_complete
\n
"
,
dev
->
name
);
dev
->
name
);
...
@@ -543,7 +542,7 @@ static int eth_poll(struct napi_struct *napi, int budget)
...
@@ -543,7 +542,7 @@ static int eth_poll(struct napi_struct *napi, int budget)
printk
(
KERN_DEBUG
"%s: eth_poll all done
\n
"
,
printk
(
KERN_DEBUG
"%s: eth_poll all done
\n
"
,
dev
->
name
);
dev
->
name
);
#endif
#endif
return
0
;
/* all work done */
return
received
;
/* all work done */
}
}
desc
=
rx_desc_ptr
(
port
,
n
);
desc
=
rx_desc_ptr
(
port
,
n
);
...
...
drivers/net/tun.c
浏览文件 @
2aec609f
...
@@ -690,6 +690,12 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
...
@@ -690,6 +690,12 @@ static int tun_set_iff(struct net *net, struct file *file, struct ifreq *ifr)
tun
->
attached
=
1
;
tun
->
attached
=
1
;
get_net
(
dev_net
(
tun
->
dev
));
get_net
(
dev_net
(
tun
->
dev
));
/* Make sure persistent devices do not get stuck in
* xoff state.
*/
if
(
netif_running
(
tun
->
dev
))
netif_wake_queue
(
tun
->
dev
);
strcpy
(
ifr
->
ifr_name
,
tun
->
dev
->
name
);
strcpy
(
ifr
->
ifr_name
,
tun
->
dev
->
name
);
return
0
;
return
0
;
...
...
drivers/net/wireless/libertas/scan.c
浏览文件 @
2aec609f
...
@@ -567,11 +567,11 @@ static int lbs_process_bss(struct bss_descriptor *bss,
...
@@ -567,11 +567,11 @@ static int lbs_process_bss(struct bss_descriptor *bss,
pos
+=
8
;
pos
+=
8
;
/* beacon interval is 2 bytes long */
/* beacon interval is 2 bytes long */
bss
->
beaconperiod
=
le16_to_cpup
((
void
*
)
pos
);
bss
->
beaconperiod
=
get_unaligned_le16
(
pos
);
pos
+=
2
;
pos
+=
2
;
/* capability information is 2 bytes long */
/* capability information is 2 bytes long */
bss
->
capability
=
le16_to_cpup
((
void
*
)
pos
);
bss
->
capability
=
get_unaligned_le16
(
pos
);
lbs_deb_scan
(
"process_bss: capabilities 0x%04x
\n
"
,
bss
->
capability
);
lbs_deb_scan
(
"process_bss: capabilities 0x%04x
\n
"
,
bss
->
capability
);
pos
+=
2
;
pos
+=
2
;
...
...
drivers/net/wireless/rt2x00/rt2400pci.c
浏览文件 @
2aec609f
...
@@ -733,6 +733,17 @@ static int rt2400pci_init_registers(struct rt2x00_dev *rt2x00dev)
...
@@ -733,6 +733,17 @@ static int rt2400pci_init_registers(struct rt2x00_dev *rt2x00dev)
(
rt2x00dev
->
rx
->
data_size
/
128
));
(
rt2x00dev
->
rx
->
data_size
/
128
));
rt2x00pci_register_write
(
rt2x00dev
,
CSR9
,
reg
);
rt2x00pci_register_write
(
rt2x00dev
,
CSR9
,
reg
);
rt2x00pci_register_read
(
rt2x00dev
,
CSR14
,
&
reg
);
rt2x00_set_field32
(
&
reg
,
CSR14_TSF_COUNT
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_TSF_SYNC
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_TBCN
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_TCFP
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_TATIMW
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_BEACON_GEN
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_CFP_COUNT_PRELOAD
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_TBCM_PRELOAD
,
0
);
rt2x00pci_register_write
(
rt2x00dev
,
CSR14
,
reg
);
rt2x00pci_register_write
(
rt2x00dev
,
CNT3
,
0x3f080000
);
rt2x00pci_register_write
(
rt2x00dev
,
CNT3
,
0x3f080000
);
rt2x00pci_register_read
(
rt2x00dev
,
ARCSR0
,
&
reg
);
rt2x00pci_register_read
(
rt2x00dev
,
ARCSR0
,
&
reg
);
...
...
drivers/net/wireless/rt2x00/rt2500pci.c
浏览文件 @
2aec609f
...
@@ -831,6 +831,17 @@ static int rt2500pci_init_registers(struct rt2x00_dev *rt2x00dev)
...
@@ -831,6 +831,17 @@ static int rt2500pci_init_registers(struct rt2x00_dev *rt2x00dev)
rt2x00_set_field32
(
&
reg
,
CSR11_CW_SELECT
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR11_CW_SELECT
,
0
);
rt2x00pci_register_write
(
rt2x00dev
,
CSR11
,
reg
);
rt2x00pci_register_write
(
rt2x00dev
,
CSR11
,
reg
);
rt2x00pci_register_read
(
rt2x00dev
,
CSR14
,
&
reg
);
rt2x00_set_field32
(
&
reg
,
CSR14_TSF_COUNT
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_TSF_SYNC
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_TBCN
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_TCFP
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_TATIMW
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_BEACON_GEN
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_CFP_COUNT_PRELOAD
,
0
);
rt2x00_set_field32
(
&
reg
,
CSR14_TBCM_PRELOAD
,
0
);
rt2x00pci_register_write
(
rt2x00dev
,
CSR14
,
reg
);
rt2x00pci_register_write
(
rt2x00dev
,
CNT3
,
0
);
rt2x00pci_register_write
(
rt2x00dev
,
CNT3
,
0
);
rt2x00pci_register_read
(
rt2x00dev
,
TXCSR8
,
&
reg
);
rt2x00pci_register_read
(
rt2x00dev
,
TXCSR8
,
&
reg
);
...
...
drivers/net/wireless/rt2x00/rt2500usb.c
浏览文件 @
2aec609f
...
@@ -812,6 +812,13 @@ static int rt2500usb_init_registers(struct rt2x00_dev *rt2x00dev)
...
@@ -812,6 +812,13 @@ static int rt2500usb_init_registers(struct rt2x00_dev *rt2x00dev)
rt2x00_set_field16
(
&
reg
,
TXRX_CSR8_BBP_ID1_VALID
,
0
);
rt2x00_set_field16
(
&
reg
,
TXRX_CSR8_BBP_ID1_VALID
,
0
);
rt2500usb_register_write
(
rt2x00dev
,
TXRX_CSR8
,
reg
);
rt2500usb_register_write
(
rt2x00dev
,
TXRX_CSR8
,
reg
);
rt2500usb_register_read
(
rt2x00dev
,
TXRX_CSR19
,
&
reg
);
rt2x00_set_field16
(
&
reg
,
TXRX_CSR19_TSF_COUNT
,
0
);
rt2x00_set_field16
(
&
reg
,
TXRX_CSR19_TSF_SYNC
,
0
);
rt2x00_set_field16
(
&
reg
,
TXRX_CSR19_TBCN
,
0
);
rt2x00_set_field16
(
&
reg
,
TXRX_CSR19_BEACON_GEN
,
0
);
rt2500usb_register_write
(
rt2x00dev
,
TXRX_CSR19
,
reg
);
rt2500usb_register_write
(
rt2x00dev
,
TXRX_CSR21
,
0xe78f
);
rt2500usb_register_write
(
rt2x00dev
,
TXRX_CSR21
,
0xe78f
);
rt2500usb_register_write
(
rt2x00dev
,
MAC_CSR9
,
0xff1d
);
rt2500usb_register_write
(
rt2x00dev
,
MAC_CSR9
,
0xff1d
);
...
...
drivers/net/wireless/rt2x00/rt61pci.c
浏览文件 @
2aec609f
...
@@ -1198,6 +1198,15 @@ static int rt61pci_init_registers(struct rt2x00_dev *rt2x00dev)
...
@@ -1198,6 +1198,15 @@ static int rt61pci_init_registers(struct rt2x00_dev *rt2x00dev)
rt2x00_set_field32
(
&
reg
,
TXRX_CSR8_ACK_CTS_54MBS
,
42
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR8_ACK_CTS_54MBS
,
42
);
rt2x00pci_register_write
(
rt2x00dev
,
TXRX_CSR8
,
reg
);
rt2x00pci_register_write
(
rt2x00dev
,
TXRX_CSR8
,
reg
);
rt2x00pci_register_read
(
rt2x00dev
,
TXRX_CSR9
,
&
reg
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_BEACON_INTERVAL
,
0
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_TSF_TICKING
,
0
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_TSF_SYNC
,
0
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_TBTT_ENABLE
,
0
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_BEACON_GEN
,
0
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_TIMESTAMP_COMPENSATE
,
0
);
rt2x00pci_register_write
(
rt2x00dev
,
TXRX_CSR9
,
reg
);
rt2x00pci_register_write
(
rt2x00dev
,
TXRX_CSR15
,
0x0000000f
);
rt2x00pci_register_write
(
rt2x00dev
,
TXRX_CSR15
,
0x0000000f
);
rt2x00pci_register_write
(
rt2x00dev
,
MAC_CSR6
,
0x00000fff
);
rt2x00pci_register_write
(
rt2x00dev
,
MAC_CSR6
,
0x00000fff
);
...
...
drivers/net/wireless/rt2x00/rt73usb.c
浏览文件 @
2aec609f
...
@@ -1016,6 +1016,15 @@ static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)
...
@@ -1016,6 +1016,15 @@ static int rt73usb_init_registers(struct rt2x00_dev *rt2x00dev)
rt2x00_set_field32
(
&
reg
,
TXRX_CSR8_ACK_CTS_54MBS
,
42
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR8_ACK_CTS_54MBS
,
42
);
rt73usb_register_write
(
rt2x00dev
,
TXRX_CSR8
,
reg
);
rt73usb_register_write
(
rt2x00dev
,
TXRX_CSR8
,
reg
);
rt73usb_register_read
(
rt2x00dev
,
TXRX_CSR9
,
&
reg
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_BEACON_INTERVAL
,
0
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_TSF_TICKING
,
0
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_TSF_SYNC
,
0
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_TBTT_ENABLE
,
0
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_BEACON_GEN
,
0
);
rt2x00_set_field32
(
&
reg
,
TXRX_CSR9_TIMESTAMP_COMPENSATE
,
0
);
rt73usb_register_write
(
rt2x00dev
,
TXRX_CSR9
,
reg
);
rt73usb_register_write
(
rt2x00dev
,
TXRX_CSR15
,
0x0000000f
);
rt73usb_register_write
(
rt2x00dev
,
TXRX_CSR15
,
0x0000000f
);
rt73usb_register_read
(
rt2x00dev
,
MAC_CSR6
,
&
reg
);
rt73usb_register_read
(
rt2x00dev
,
MAC_CSR6
,
&
reg
);
...
...
drivers/net/wireless/zd1211rw/zd_mac.c
浏览文件 @
2aec609f
...
@@ -707,6 +707,7 @@ static void zd_op_remove_interface(struct ieee80211_hw *hw,
...
@@ -707,6 +707,7 @@ static void zd_op_remove_interface(struct ieee80211_hw *hw,
{
{
struct
zd_mac
*
mac
=
zd_hw_mac
(
hw
);
struct
zd_mac
*
mac
=
zd_hw_mac
(
hw
);
mac
->
type
=
IEEE80211_IF_TYPE_INVALID
;
mac
->
type
=
IEEE80211_IF_TYPE_INVALID
;
zd_set_beacon_interval
(
&
mac
->
chip
,
0
);
zd_write_mac_addr
(
&
mac
->
chip
,
NULL
);
zd_write_mac_addr
(
&
mac
->
chip
,
NULL
);
}
}
...
...
include/linux/xfrm.h
浏览文件 @
2aec609f
...
@@ -339,6 +339,7 @@ struct xfrm_usersa_info {
...
@@ -339,6 +339,7 @@ struct xfrm_usersa_info {
#define XFRM_STATE_NOPMTUDISC 4
#define XFRM_STATE_NOPMTUDISC 4
#define XFRM_STATE_WILDRECV 8
#define XFRM_STATE_WILDRECV 8
#define XFRM_STATE_ICMP 16
#define XFRM_STATE_ICMP 16
#define XFRM_STATE_AF_UNSPEC 32
};
};
struct
xfrm_usersa_id
{
struct
xfrm_usersa_id
{
...
...
net/ipv4/fib_trie.c
浏览文件 @
2aec609f
...
@@ -1357,17 +1357,17 @@ static int check_leaf(struct trie *t, struct leaf *l,
...
@@ -1357,17 +1357,17 @@ static int check_leaf(struct trie *t, struct leaf *l,
t
->
stats
.
semantic_match_miss
++
;
t
->
stats
.
semantic_match_miss
++
;
#endif
#endif
if
(
err
<=
0
)
if
(
err
<=
0
)
return
plen
;
return
err
;
}
}
return
-
1
;
return
1
;
}
}
static
int
fn_trie_lookup
(
struct
fib_table
*
tb
,
const
struct
flowi
*
flp
,
static
int
fn_trie_lookup
(
struct
fib_table
*
tb
,
const
struct
flowi
*
flp
,
struct
fib_result
*
res
)
struct
fib_result
*
res
)
{
{
struct
trie
*
t
=
(
struct
trie
*
)
tb
->
tb_data
;
struct
trie
*
t
=
(
struct
trie
*
)
tb
->
tb_data
;
int
plen
,
ret
=
0
;
int
ret
;
struct
node
*
n
;
struct
node
*
n
;
struct
tnode
*
pn
;
struct
tnode
*
pn
;
int
pos
,
bits
;
int
pos
,
bits
;
...
@@ -1391,10 +1391,7 @@ static int fn_trie_lookup(struct fib_table *tb, const struct flowi *flp,
...
@@ -1391,10 +1391,7 @@ static int fn_trie_lookup(struct fib_table *tb, const struct flowi *flp,
/* Just a leaf? */
/* Just a leaf? */
if
(
IS_LEAF
(
n
))
{
if
(
IS_LEAF
(
n
))
{
plen
=
check_leaf
(
t
,
(
struct
leaf
*
)
n
,
key
,
flp
,
res
);
ret
=
check_leaf
(
t
,
(
struct
leaf
*
)
n
,
key
,
flp
,
res
);
if
(
plen
<
0
)
goto
failed
;
ret
=
0
;
goto
found
;
goto
found
;
}
}
...
@@ -1419,11 +1416,9 @@ static int fn_trie_lookup(struct fib_table *tb, const struct flowi *flp,
...
@@ -1419,11 +1416,9 @@ static int fn_trie_lookup(struct fib_table *tb, const struct flowi *flp,
}
}
if
(
IS_LEAF
(
n
))
{
if
(
IS_LEAF
(
n
))
{
plen
=
check_leaf
(
t
,
(
struct
leaf
*
)
n
,
key
,
flp
,
res
);
ret
=
check_leaf
(
t
,
(
struct
leaf
*
)
n
,
key
,
flp
,
res
);
if
(
plen
<
0
)
if
(
ret
>
0
)
goto
backtrace
;
goto
backtrace
;
ret
=
0
;
goto
found
;
goto
found
;
}
}
...
...
net/ipv4/netfilter/nf_nat_snmp_basic.c
浏览文件 @
2aec609f
...
@@ -439,8 +439,8 @@ static unsigned char asn1_oid_decode(struct asn1_ctx *ctx,
...
@@ -439,8 +439,8 @@ static unsigned char asn1_oid_decode(struct asn1_ctx *ctx,
unsigned
int
*
len
)
unsigned
int
*
len
)
{
{
unsigned
long
subid
;
unsigned
long
subid
;
unsigned
int
size
;
unsigned
long
*
optr
;
unsigned
long
*
optr
;
size_t
size
;
size
=
eoc
-
ctx
->
pointer
+
1
;
size
=
eoc
-
ctx
->
pointer
+
1
;
...
...
net/ipv4/tcp_probe.c
浏览文件 @
2aec609f
...
@@ -224,7 +224,7 @@ static __init int tcpprobe_init(void)
...
@@ -224,7 +224,7 @@ static __init int tcpprobe_init(void)
if
(
bufsize
<
0
)
if
(
bufsize
<
0
)
return
-
EINVAL
;
return
-
EINVAL
;
tcp_probe
.
log
=
kcalloc
(
sizeof
(
struct
tcp_log
),
bufsize
,
GFP_KERNEL
);
tcp_probe
.
log
=
kcalloc
(
bufsize
,
sizeof
(
struct
tcp_log
)
,
GFP_KERNEL
);
if
(
!
tcp_probe
.
log
)
if
(
!
tcp_probe
.
log
)
goto
err0
;
goto
err0
;
...
...
net/ipv6/exthdrs.c
浏览文件 @
2aec609f
...
@@ -443,7 +443,7 @@ static int ipv6_rthdr_rcv(struct sk_buff *skb)
...
@@ -443,7 +443,7 @@ static int ipv6_rthdr_rcv(struct sk_buff *skb)
kfree_skb
(
skb
);
kfree_skb
(
skb
);
return
-
1
;
return
-
1
;
}
}
if
(
!
ipv6_chk_home_addr
(
&
init_net
,
addr
))
{
if
(
!
ipv6_chk_home_addr
(
dev_net
(
skb
->
dst
->
dev
)
,
addr
))
{
IP6_INC_STATS_BH
(
ip6_dst_idev
(
skb
->
dst
),
IP6_INC_STATS_BH
(
ip6_dst_idev
(
skb
->
dst
),
IPSTATS_MIB_INADDRERRORS
);
IPSTATS_MIB_INADDRERRORS
);
kfree_skb
(
skb
);
kfree_skb
(
skb
);
...
...
net/mac80211/rc80211_pid.h
浏览文件 @
2aec609f
...
@@ -141,7 +141,6 @@ struct rc_pid_events_file_info {
...
@@ -141,7 +141,6 @@ struct rc_pid_events_file_info {
* rate behaviour values (lower means we should trust more what we learnt
* rate behaviour values (lower means we should trust more what we learnt
* about behaviour of rates, higher means we should trust more the natural
* about behaviour of rates, higher means we should trust more the natural
* ordering of rates)
* ordering of rates)
* @fast_start: if Y, push high rates right after initialization
*/
*/
struct
rc_pid_debugfs_entries
{
struct
rc_pid_debugfs_entries
{
struct
dentry
*
dir
;
struct
dentry
*
dir
;
...
@@ -154,7 +153,6 @@ struct rc_pid_debugfs_entries {
...
@@ -154,7 +153,6 @@ struct rc_pid_debugfs_entries {
struct
dentry
*
sharpen_factor
;
struct
dentry
*
sharpen_factor
;
struct
dentry
*
sharpen_duration
;
struct
dentry
*
sharpen_duration
;
struct
dentry
*
norm_offset
;
struct
dentry
*
norm_offset
;
struct
dentry
*
fast_start
;
};
};
void
rate_control_pid_event_tx_status
(
struct
rc_pid_event_buffer
*
buf
,
void
rate_control_pid_event_tx_status
(
struct
rc_pid_event_buffer
*
buf
,
...
@@ -267,9 +265,6 @@ struct rc_pid_info {
...
@@ -267,9 +265,6 @@ struct rc_pid_info {
/* Normalization offset. */
/* Normalization offset. */
unsigned
int
norm_offset
;
unsigned
int
norm_offset
;
/* Fast starst parameter. */
unsigned
int
fast_start
;
/* Rates information. */
/* Rates information. */
struct
rc_pid_rateinfo
*
rinfo
;
struct
rc_pid_rateinfo
*
rinfo
;
...
...
net/mac80211/rc80211_pid_algo.c
浏览文件 @
2aec609f
...
@@ -398,13 +398,25 @@ static void *rate_control_pid_alloc(struct ieee80211_local *local)
...
@@ -398,13 +398,25 @@ static void *rate_control_pid_alloc(struct ieee80211_local *local)
return
NULL
;
return
NULL
;
}
}
pinfo
->
target
=
RC_PID_TARGET_PF
;
pinfo
->
sampling_period
=
RC_PID_INTERVAL
;
pinfo
->
coeff_p
=
RC_PID_COEFF_P
;
pinfo
->
coeff_i
=
RC_PID_COEFF_I
;
pinfo
->
coeff_d
=
RC_PID_COEFF_D
;
pinfo
->
smoothing_shift
=
RC_PID_SMOOTHING_SHIFT
;
pinfo
->
sharpen_factor
=
RC_PID_SHARPENING_FACTOR
;
pinfo
->
sharpen_duration
=
RC_PID_SHARPENING_DURATION
;
pinfo
->
norm_offset
=
RC_PID_NORM_OFFSET
;
pinfo
->
rinfo
=
rinfo
;
pinfo
->
oldrate
=
0
;
/* Sort the rates. This is optimized for the most common case (i.e.
/* Sort the rates. This is optimized for the most common case (i.e.
* almost-sorted CCK+OFDM rates). Kind of bubble-sort with reversed
* almost-sorted CCK+OFDM rates). Kind of bubble-sort with reversed
* mapping too. */
* mapping too. */
for
(
i
=
0
;
i
<
sband
->
n_bitrates
;
i
++
)
{
for
(
i
=
0
;
i
<
sband
->
n_bitrates
;
i
++
)
{
rinfo
[
i
].
index
=
i
;
rinfo
[
i
].
index
=
i
;
rinfo
[
i
].
rev_index
=
i
;
rinfo
[
i
].
rev_index
=
i
;
if
(
pinfo
->
fast_start
)
if
(
RC_PID_FAST_START
)
rinfo
[
i
].
diff
=
0
;
rinfo
[
i
].
diff
=
0
;
else
else
rinfo
[
i
].
diff
=
i
*
pinfo
->
norm_offset
;
rinfo
[
i
].
diff
=
i
*
pinfo
->
norm_offset
;
...
@@ -425,19 +437,6 @@ static void *rate_control_pid_alloc(struct ieee80211_local *local)
...
@@ -425,19 +437,6 @@ static void *rate_control_pid_alloc(struct ieee80211_local *local)
break
;
break
;
}
}
pinfo
->
target
=
RC_PID_TARGET_PF
;
pinfo
->
sampling_period
=
RC_PID_INTERVAL
;
pinfo
->
coeff_p
=
RC_PID_COEFF_P
;
pinfo
->
coeff_i
=
RC_PID_COEFF_I
;
pinfo
->
coeff_d
=
RC_PID_COEFF_D
;
pinfo
->
smoothing_shift
=
RC_PID_SMOOTHING_SHIFT
;
pinfo
->
sharpen_factor
=
RC_PID_SHARPENING_FACTOR
;
pinfo
->
sharpen_duration
=
RC_PID_SHARPENING_DURATION
;
pinfo
->
norm_offset
=
RC_PID_NORM_OFFSET
;
pinfo
->
fast_start
=
RC_PID_FAST_START
;
pinfo
->
rinfo
=
rinfo
;
pinfo
->
oldrate
=
0
;
#ifdef CONFIG_MAC80211_DEBUGFS
#ifdef CONFIG_MAC80211_DEBUGFS
de
=
&
pinfo
->
dentries
;
de
=
&
pinfo
->
dentries
;
de
->
dir
=
debugfs_create_dir
(
"rc80211_pid"
,
de
->
dir
=
debugfs_create_dir
(
"rc80211_pid"
,
...
@@ -465,9 +464,6 @@ static void *rate_control_pid_alloc(struct ieee80211_local *local)
...
@@ -465,9 +464,6 @@ static void *rate_control_pid_alloc(struct ieee80211_local *local)
de
->
norm_offset
=
debugfs_create_u32
(
"norm_offset"
,
de
->
norm_offset
=
debugfs_create_u32
(
"norm_offset"
,
S_IRUSR
|
S_IWUSR
,
de
->
dir
,
S_IRUSR
|
S_IWUSR
,
de
->
dir
,
&
pinfo
->
norm_offset
);
&
pinfo
->
norm_offset
);
de
->
fast_start
=
debugfs_create_bool
(
"fast_start"
,
S_IRUSR
|
S_IWUSR
,
de
->
dir
,
&
pinfo
->
fast_start
);
#endif
#endif
return
pinfo
;
return
pinfo
;
...
@@ -479,7 +475,6 @@ static void rate_control_pid_free(void *priv)
...
@@ -479,7 +475,6 @@ static void rate_control_pid_free(void *priv)
#ifdef CONFIG_MAC80211_DEBUGFS
#ifdef CONFIG_MAC80211_DEBUGFS
struct
rc_pid_debugfs_entries
*
de
=
&
pinfo
->
dentries
;
struct
rc_pid_debugfs_entries
*
de
=
&
pinfo
->
dentries
;
debugfs_remove
(
de
->
fast_start
);
debugfs_remove
(
de
->
norm_offset
);
debugfs_remove
(
de
->
norm_offset
);
debugfs_remove
(
de
->
sharpen_duration
);
debugfs_remove
(
de
->
sharpen_duration
);
debugfs_remove
(
de
->
sharpen_factor
);
debugfs_remove
(
de
->
sharpen_factor
);
...
...
net/netfilter/nf_conntrack_proto_tcp.c
浏览文件 @
2aec609f
...
@@ -844,8 +844,14 @@ static int tcp_packet(struct nf_conn *ct,
...
@@ -844,8 +844,14 @@ static int tcp_packet(struct nf_conn *ct,
/* Attempt to reopen a closed/aborted connection.
/* Attempt to reopen a closed/aborted connection.
* Delete this connection and look up again. */
* Delete this connection and look up again. */
write_unlock_bh
(
&
tcp_lock
);
write_unlock_bh
(
&
tcp_lock
);
nf_ct_kill
(
ct
);
return
-
NF_REPEAT
;
/* Only repeat if we can actually remove the timer.
* Destruction may already be in progress in process
* context and we must give it a chance to terminate.
*/
if
(
nf_ct_kill
(
ct
))
return
-
NF_REPEAT
;
return
-
NF_DROP
;
}
}
/* Fall through */
/* Fall through */
case
TCP_CONNTRACK_IGNORE
:
case
TCP_CONNTRACK_IGNORE
:
...
...
net/netlabel/netlabel_cipso_v4.c
浏览文件 @
2aec609f
...
@@ -584,12 +584,7 @@ static int netlbl_cipsov4_list(struct sk_buff *skb, struct genl_info *info)
...
@@ -584,12 +584,7 @@ static int netlbl_cipsov4_list(struct sk_buff *skb, struct genl_info *info)
rcu_read_unlock
();
rcu_read_unlock
();
genlmsg_end
(
ans_skb
,
data
);
genlmsg_end
(
ans_skb
,
data
);
return
genlmsg_reply
(
ans_skb
,
info
);
ret_val
=
genlmsg_reply
(
ans_skb
,
info
);
if
(
ret_val
!=
0
)
goto
list_failure
;
return
0
;
list_retry:
list_retry:
/* XXX - this limit is a guesstimate */
/* XXX - this limit is a guesstimate */
...
...
net/netlabel/netlabel_mgmt.c
浏览文件 @
2aec609f
...
@@ -386,11 +386,7 @@ static int netlbl_mgmt_listdef(struct sk_buff *skb, struct genl_info *info)
...
@@ -386,11 +386,7 @@ static int netlbl_mgmt_listdef(struct sk_buff *skb, struct genl_info *info)
rcu_read_unlock
();
rcu_read_unlock
();
genlmsg_end
(
ans_skb
,
data
);
genlmsg_end
(
ans_skb
,
data
);
return
genlmsg_reply
(
ans_skb
,
info
);
ret_val
=
genlmsg_reply
(
ans_skb
,
info
);
if
(
ret_val
!=
0
)
goto
listdef_failure
;
return
0
;
listdef_failure_lock:
listdef_failure_lock:
rcu_read_unlock
();
rcu_read_unlock
();
...
@@ -501,11 +497,7 @@ static int netlbl_mgmt_version(struct sk_buff *skb, struct genl_info *info)
...
@@ -501,11 +497,7 @@ static int netlbl_mgmt_version(struct sk_buff *skb, struct genl_info *info)
goto
version_failure
;
goto
version_failure
;
genlmsg_end
(
ans_skb
,
data
);
genlmsg_end
(
ans_skb
,
data
);
return
genlmsg_reply
(
ans_skb
,
info
);
ret_val
=
genlmsg_reply
(
ans_skb
,
info
);
if
(
ret_val
!=
0
)
goto
version_failure
;
return
0
;
version_failure:
version_failure:
kfree_skb
(
ans_skb
);
kfree_skb
(
ans_skb
);
...
...
net/netlabel/netlabel_unlabeled.c
浏览文件 @
2aec609f
...
@@ -1107,11 +1107,7 @@ static int netlbl_unlabel_list(struct sk_buff *skb, struct genl_info *info)
...
@@ -1107,11 +1107,7 @@ static int netlbl_unlabel_list(struct sk_buff *skb, struct genl_info *info)
goto
list_failure
;
goto
list_failure
;
genlmsg_end
(
ans_skb
,
data
);
genlmsg_end
(
ans_skb
,
data
);
return
genlmsg_reply
(
ans_skb
,
info
);
ret_val
=
genlmsg_reply
(
ans_skb
,
info
);
if
(
ret_val
!=
0
)
goto
list_failure
;
return
0
;
list_failure:
list_failure:
kfree_skb
(
ans_skb
);
kfree_skb
(
ans_skb
);
...
...
net/xfrm/xfrm_user.c
浏览文件 @
2aec609f
...
@@ -277,9 +277,8 @@ static void copy_from_user_state(struct xfrm_state *x, struct xfrm_usersa_info *
...
@@ -277,9 +277,8 @@ static void copy_from_user_state(struct xfrm_state *x, struct xfrm_usersa_info *
memcpy
(
&
x
->
props
.
saddr
,
&
p
->
saddr
,
sizeof
(
x
->
props
.
saddr
));
memcpy
(
&
x
->
props
.
saddr
,
&
p
->
saddr
,
sizeof
(
x
->
props
.
saddr
));
x
->
props
.
flags
=
p
->
flags
;
x
->
props
.
flags
=
p
->
flags
;
if
(
!
x
->
sel
.
family
)
if
(
!
x
->
sel
.
family
&&
!
(
p
->
flags
&
XFRM_STATE_AF_UNSPEC
)
)
x
->
sel
.
family
=
p
->
family
;
x
->
sel
.
family
=
p
->
family
;
}
}
/*
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录