Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
_Walt
cloud-kernel
提交
5ecccb74
cloud-kernel
项目概览
_Walt
/
cloud-kernel
与 Fork 源项目一致
Fork自
openanolis / cloud-kernel
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5ecccb74
编写于
2月 14, 2010
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: net/mac80211/rate.c
上级
f6f22303
3d0beb92
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
36 addition
and
31 deletion
+36
-31
drivers/net/sfc/efx.c
drivers/net/sfc/efx.c
+1
-0
drivers/net/sfc/qt202x_phy.c
drivers/net/sfc/qt202x_phy.c
+1
-1
drivers/net/via-velocity.c
drivers/net/via-velocity.c
+20
-21
drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/xmit.c
+2
-2
drivers/net/wireless/iwlwifi/iwl-rx.c
drivers/net/wireless/iwlwifi/iwl-rx.c
+4
-1
drivers/net/wireless/iwmc3200wifi/rx.c
drivers/net/wireless/iwmc3200wifi/rx.c
+1
-1
drivers/net/wireless/rtl818x/rtl8187_dev.c
drivers/net/wireless/rtl818x/rtl8187_dev.c
+1
-0
net/ipv4/igmp.c
net/ipv4/igmp.c
+1
-1
net/ipv4/tcp_input.c
net/ipv4/tcp_input.c
+2
-4
net/mac80211/rate.c
net/mac80211/rate.c
+3
-0
未找到文件。
drivers/net/sfc/efx.c
浏览文件 @
5ecccb74
...
...
@@ -2284,6 +2284,7 @@ static int __devinit efx_pci_probe(struct pci_dev *pci_dev,
fail2:
efx_fini_struct
(
efx
);
fail1:
WARN_ON
(
rc
>
0
);
EFX_LOG
(
efx
,
"initialisation failed. rc=%d
\n
"
,
rc
);
free_netdev
(
net_dev
);
return
rc
;
...
...
drivers/net/sfc/qt202x_phy.c
浏览文件 @
5ecccb74
...
...
@@ -320,7 +320,7 @@ static int qt202x_reset_phy(struct efx_nic *efx)
falcon_board
(
efx
)
->
type
->
init_phy
(
efx
);
return
rc
;
return
0
;
fail:
EFX_ERR
(
efx
,
"PHY reset timed out
\n
"
);
...
...
drivers/net/via-velocity.c
浏览文件 @
5ecccb74
...
...
@@ -1879,13 +1879,12 @@ static void velocity_error(struct velocity_info *vptr, int status)
/**
* tx_srv - transmit interrupt service
* @vptr; Velocity
* @status:
*
* Scan the queues looking for transmitted packets that
* we can complete and clean up. Update any statistics as
* necessary/
*/
static
int
velocity_tx_srv
(
struct
velocity_info
*
vptr
,
u32
status
)
static
int
velocity_tx_srv
(
struct
velocity_info
*
vptr
)
{
struct
tx_desc
*
td
;
int
qnum
;
...
...
@@ -2092,14 +2091,12 @@ static int velocity_receive_frame(struct velocity_info *vptr, int idx)
/**
* velocity_rx_srv - service RX interrupt
* @vptr: velocity
* @status: adapter status (unused)
*
* Walk the receive ring of the velocity adapter and remove
* any received packets from the receive queue. Hand the ring
* slots back to the adapter for reuse.
*/
static
int
velocity_rx_srv
(
struct
velocity_info
*
vptr
,
int
status
,
int
budget_left
)
static
int
velocity_rx_srv
(
struct
velocity_info
*
vptr
,
int
budget_left
)
{
struct
net_device_stats
*
stats
=
&
vptr
->
dev
->
stats
;
int
rd_curr
=
vptr
->
rx
.
curr
;
...
...
@@ -2153,32 +2150,24 @@ static int velocity_poll(struct napi_struct *napi, int budget)
struct
velocity_info
*
vptr
=
container_of
(
napi
,
struct
velocity_info
,
napi
);
unsigned
int
rx_done
;
u32
isr_status
;
spin_lock
(
&
vptr
->
lock
);
isr_status
=
mac_read_isr
(
vptr
->
mac_regs
);
/* Ack the interrupt */
mac_write_isr
(
vptr
->
mac_regs
,
isr_status
);
if
(
isr_status
&
(
~
(
ISR_PRXI
|
ISR_PPRXI
|
ISR_PTXI
|
ISR_PPTXI
)))
velocity_error
(
vptr
,
isr_status
);
unsigned
long
flags
;
spin_lock_irqsave
(
&
vptr
->
lock
,
flags
);
/*
* Do rx and tx twice for performance (taken from the VIA
* out-of-tree driver).
*/
rx_done
=
velocity_rx_srv
(
vptr
,
isr_status
,
budget
/
2
);
velocity_tx_srv
(
vptr
,
isr_status
);
rx_done
+=
velocity_rx_srv
(
vptr
,
isr_status
,
budget
-
rx_done
);
velocity_tx_srv
(
vptr
,
isr_status
);
spin_unlock
(
&
vptr
->
lock
);
rx_done
=
velocity_rx_srv
(
vptr
,
budget
/
2
);
velocity_tx_srv
(
vptr
);
rx_done
+=
velocity_rx_srv
(
vptr
,
budget
-
rx_done
);
velocity_tx_srv
(
vptr
);
/* If budget not fully consumed, exit the polling mode */
if
(
rx_done
<
budget
)
{
napi_complete
(
napi
);
mac_enable_int
(
vptr
->
mac_regs
);
}
spin_unlock_irqrestore
(
&
vptr
->
lock
,
flags
);
return
rx_done
;
}
...
...
@@ -2208,10 +2197,17 @@ static irqreturn_t velocity_intr(int irq, void *dev_instance)
return
IRQ_NONE
;
}
/* Ack the interrupt */
mac_write_isr
(
vptr
->
mac_regs
,
isr_status
);
if
(
likely
(
napi_schedule_prep
(
&
vptr
->
napi
)))
{
mac_disable_int
(
vptr
->
mac_regs
);
__napi_schedule
(
&
vptr
->
napi
);
}
if
(
isr_status
&
(
~
(
ISR_PRXI
|
ISR_PPRXI
|
ISR_PTXI
|
ISR_PPTXI
)))
velocity_error
(
vptr
,
isr_status
);
spin_unlock
(
&
vptr
->
lock
);
return
IRQ_HANDLED
;
...
...
@@ -3100,7 +3096,7 @@ static int velocity_resume(struct pci_dev *pdev)
velocity_init_registers
(
vptr
,
VELOCITY_INIT_WOL
);
mac_disable_int
(
vptr
->
mac_regs
);
velocity_tx_srv
(
vptr
,
0
);
velocity_tx_srv
(
vptr
);
for
(
i
=
0
;
i
<
vptr
->
tx
.
numq
;
i
++
)
{
if
(
vptr
->
tx
.
used
[
i
])
...
...
@@ -3344,6 +3340,7 @@ static int velocity_set_coalesce(struct net_device *dev,
{
struct
velocity_info
*
vptr
=
netdev_priv
(
dev
);
int
max_us
=
0x3f
*
64
;
unsigned
long
flags
;
/* 6 bits of */
if
(
ecmd
->
tx_coalesce_usecs
>
max_us
)
...
...
@@ -3365,6 +3362,7 @@ static int velocity_set_coalesce(struct net_device *dev,
ecmd
->
tx_coalesce_usecs
);
/* Setup the interrupt suppression and queue timers */
spin_lock_irqsave
(
&
vptr
->
lock
,
flags
);
mac_disable_int
(
vptr
->
mac_regs
);
setup_adaptive_interrupts
(
vptr
);
setup_queue_timers
(
vptr
);
...
...
@@ -3372,6 +3370,7 @@ static int velocity_set_coalesce(struct net_device *dev,
mac_write_int_mask
(
vptr
->
int_mask
,
vptr
->
mac_regs
);
mac_clear_isr
(
vptr
->
mac_regs
);
mac_enable_int
(
vptr
->
mac_regs
);
spin_unlock_irqrestore
(
&
vptr
->
lock
,
flags
);
return
0
;
}
...
...
drivers/net/wireless/ath/ath9k/xmit.c
浏览文件 @
5ecccb74
...
...
@@ -1610,7 +1610,7 @@ static int ath_tx_setup_buffer(struct ieee80211_hw *hw, struct ath_buf *bf,
bf
->
bf_frmlen
-=
padsize
;
}
if
(
conf_is_ht
(
&
hw
->
conf
)
&&
!
is_pae
(
skb
)
)
if
(
conf_is_ht
(
&
hw
->
conf
))
bf
->
bf_state
.
bf_type
|=
BUF_HT
;
bf
->
bf_flags
=
setup_tx_flags
(
sc
,
skb
,
txctl
->
txq
);
...
...
@@ -1696,7 +1696,7 @@ static void ath_tx_start_dma(struct ath_softc *sc, struct ath_buf *bf,
goto
tx_done
;
}
if
(
tx_info
->
flags
&
IEEE80211_TX_CTL_AMPDU
)
{
if
(
(
tx_info
->
flags
&
IEEE80211_TX_CTL_AMPDU
)
&&
!
is_pae
(
skb
)
)
{
/*
* Try aggregation if it's a unicast data frame
* and the destination is HT capable.
...
...
drivers/net/wireless/iwlwifi/iwl-rx.c
浏览文件 @
5ecccb74
...
...
@@ -1012,7 +1012,10 @@ static void iwl_pass_packet_to_mac80211(struct iwl_priv *priv,
if
(
ieee80211_is_mgmt
(
fc
)
||
ieee80211_has_protected
(
fc
)
||
ieee80211_has_morefrags
(
fc
)
||
le16_to_cpu
(
hdr
->
seq_ctrl
)
&
IEEE80211_SCTL_FRAG
)
le16_to_cpu
(
hdr
->
seq_ctrl
)
&
IEEE80211_SCTL_FRAG
||
(
ieee80211_is_data_qos
(
fc
)
&&
*
ieee80211_get_qos_ctl
(
hdr
)
&
IEEE80211_QOS_CONTROL_A_MSDU_PRESENT
))
ret
=
skb_linearize
(
skb
);
else
ret
=
__pskb_pull_tail
(
skb
,
min_t
(
u16
,
IWL_LINK_HDR_MAX
,
len
))
?
...
...
drivers/net/wireless/iwmc3200wifi/rx.c
浏览文件 @
5ecccb74
...
...
@@ -794,7 +794,7 @@ static int iwm_mlme_update_bss_table(struct iwm_priv *iwm, u8 *buf,
}
bss
->
bss
=
kzalloc
(
bss_len
,
GFP_KERNEL
);
if
(
!
bss
)
{
if
(
!
bss
->
bss
)
{
kfree
(
bss
);
IWM_ERR
(
iwm
,
"Couldn't allocate bss
\n
"
);
return
-
ENOMEM
;
...
...
drivers/net/wireless/rtl818x/rtl8187_dev.c
浏览文件 @
5ecccb74
...
...
@@ -65,6 +65,7 @@ static struct usb_device_id rtl8187_table[] __devinitdata = {
/* Sitecom */
{
USB_DEVICE
(
0x0df6
,
0x000d
),
.
driver_info
=
DEVICE_RTL8187
},
{
USB_DEVICE
(
0x0df6
,
0x0028
),
.
driver_info
=
DEVICE_RTL8187B
},
{
USB_DEVICE
(
0x0df6
,
0x0029
),
.
driver_info
=
DEVICE_RTL8187B
},
/* Sphairon Access Systems GmbH */
{
USB_DEVICE
(
0x114B
,
0x0150
),
.
driver_info
=
DEVICE_RTL8187
},
/* Dick Smith Electronics */
...
...
net/ipv4/igmp.c
浏览文件 @
5ecccb74
...
...
@@ -946,7 +946,6 @@ int igmp_rcv(struct sk_buff *skb)
break
;
case
IGMP_HOST_MEMBERSHIP_REPORT
:
case
IGMPV2_HOST_MEMBERSHIP_REPORT
:
case
IGMPV3_HOST_MEMBERSHIP_REPORT
:
/* Is it our report looped back? */
if
(
skb_rtable
(
skb
)
->
fl
.
iif
==
0
)
break
;
...
...
@@ -960,6 +959,7 @@ int igmp_rcv(struct sk_buff *skb)
in_dev_put
(
in_dev
);
return
pim_rcv_v1
(
skb
);
#endif
case
IGMPV3_HOST_MEMBERSHIP_REPORT
:
case
IGMP_DVMRP
:
case
IGMP_TRACE
:
case
IGMP_HOST_LEAVE_MESSAGE
:
...
...
net/ipv4/tcp_input.c
浏览文件 @
5ecccb74
...
...
@@ -5783,11 +5783,9 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
/* tcp_ack considers this ACK as duplicate
* and does not calculate rtt.
* F
ix it at least with timestamps
.
* F
orce it here
.
*/
if
(
tp
->
rx_opt
.
saw_tstamp
&&
tp
->
rx_opt
.
rcv_tsecr
&&
!
tp
->
srtt
)
tcp_ack_saw_tstamp
(
sk
,
0
);
tcp_ack_update_rtt
(
sk
,
0
,
0
);
if
(
tp
->
rx_opt
.
tstamp_ok
)
tp
->
advmss
-=
TCPOLEN_TSTAMP_ALIGNED
;
...
...
net/mac80211/rate.c
浏览文件 @
5ecccb74
...
...
@@ -303,6 +303,9 @@ void rate_control_get_rate(struct ieee80211_sub_if_data *sdata,
info
->
control
.
rates
[
i
].
count
=
1
;
}
if
(
sdata
->
local
->
hw
.
flags
&
IEEE80211_HW_HAS_RATE_CONTROL
)
return
;
ref
->
ops
->
get_rate
(
ref
->
priv
,
ista
,
priv_sta
,
txrc
);
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录