Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
92b4522f
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看板
提交
92b4522f
编写于
5月 31, 2010
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
上级
67a3e12b
29030374
变更
19
隐藏空白更改
内联
并排
Showing
19 changed file
with
107 addition
and
38 deletion
+107
-38
drivers/isdn/hardware/mISDN/hfcsusb.c
drivers/isdn/hardware/mISDN/hfcsusb.c
+3
-1
drivers/net/benet/be_cmds.c
drivers/net/benet/be_cmds.c
+7
-4
drivers/net/fs_enet/mac-fcc.c
drivers/net/fs_enet/mac-fcc.c
+43
-6
drivers/net/wireless/ath/ar9170/usb.c
drivers/net/wireless/ath/ar9170/usb.c
+12
-2
drivers/net/wireless/ath/ath9k/xmit.c
drivers/net/wireless/ath/ath9k/xmit.c
+4
-2
drivers/net/wireless/libertas/rx.c
drivers/net/wireless/libertas/rx.c
+2
-3
drivers/net/wireless/rt2x00/rt2800usb.c
drivers/net/wireless/rt2x00/rt2800usb.c
+1
-1
drivers/ssb/pci.c
drivers/ssb/pci.c
+6
-3
drivers/ssb/sprom.c
drivers/ssb/sprom.c
+1
-0
include/linux/skbuff.h
include/linux/skbuff.h
+1
-1
net/caif/cfserl.c
net/caif/cfserl.c
+4
-2
net/core/skbuff.c
net/core/skbuff.c
+10
-6
net/ipv4/udp.c
net/ipv4/udp.c
+2
-0
net/ipv6/route.c
net/ipv6/route.c
+1
-1
net/ipv6/udp.c
net/ipv6/udp.c
+4
-2
net/mac80211/chan.c
net/mac80211/chan.c
+1
-1
net/phonet/pep.c
net/phonet/pep.c
+3
-3
net/rds/ib_cm.c
net/rds/ib_cm.c
+1
-0
net/rds/iw_cm.c
net/rds/iw_cm.c
+1
-0
未找到文件。
drivers/isdn/hardware/mISDN/hfcsusb.c
浏览文件 @
92b4522f
...
...
@@ -97,8 +97,10 @@ static int write_reg(struct hfcsusb *hw, __u8 reg, __u8 val)
hw
->
name
,
__func__
,
reg
,
val
);
spin_lock
(
&
hw
->
ctrl_lock
);
if
(
hw
->
ctrl_cnt
>=
HFC_CTRL_BUFSIZE
)
if
(
hw
->
ctrl_cnt
>=
HFC_CTRL_BUFSIZE
)
{
spin_unlock
(
&
hw
->
ctrl_lock
);
return
1
;
}
buf
=
&
hw
->
ctrl_buff
[
hw
->
ctrl_in_idx
];
buf
->
hfcs_reg
=
reg
;
buf
->
reg_val
=
val
;
...
...
drivers/net/benet/be_cmds.c
浏览文件 @
92b4522f
...
...
@@ -1429,7 +1429,7 @@ int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd,
wrb
=
wrb_from_mccq
(
adapter
);
if
(
!
wrb
)
{
status
=
-
EBUSY
;
goto
err
;
goto
err
_unlock
;
}
req
=
cmd
->
va
;
sge
=
nonembedded_sgl
(
wrb
);
...
...
@@ -1457,7 +1457,10 @@ int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd,
else
status
=
adapter
->
flash_status
;
err:
return
status
;
err_unlock:
spin_unlock_bh
(
&
adapter
->
mcc_lock
);
return
status
;
}
...
...
@@ -1497,7 +1500,7 @@ int be_cmd_get_flash_crc(struct be_adapter *adapter, u8 *flashed_crc,
return
status
;
}
extern
int
be_cmd_enable_magic_wol
(
struct
be_adapter
*
adapter
,
u8
*
mac
,
int
be_cmd_enable_magic_wol
(
struct
be_adapter
*
adapter
,
u8
*
mac
,
struct
be_dma_mem
*
nonemb_cmd
)
{
struct
be_mcc_wrb
*
wrb
;
...
...
@@ -1662,7 +1665,7 @@ int be_cmd_ddr_dma_test(struct be_adapter *adapter, u64 pattern,
return
status
;
}
extern
int
be_cmd_get_seeprom_data
(
struct
be_adapter
*
adapter
,
int
be_cmd_get_seeprom_data
(
struct
be_adapter
*
adapter
,
struct
be_dma_mem
*
nonemb_cmd
)
{
struct
be_mcc_wrb
*
wrb
;
...
...
drivers/net/fs_enet/mac-fcc.c
浏览文件 @
92b4522f
...
...
@@ -504,17 +504,54 @@ static int get_regs_len(struct net_device *dev)
}
/* Some transmit errors cause the transmitter to shut
* down. We now issue a restart transmit. Since the
* errors close the BD and update the pointers, the restart
* _should_ pick up without having to reset any of our
* pointers either. Also, To workaround 8260 device erratum
* CPM37, we must disable and then re-enable the transmitter
* following a Late Collision, Underrun, or Retry Limit error.
* down. We now issue a restart transmit.
* Also, to workaround 8260 device erratum CPM37, we must
* disable and then re-enable the transmitterfollowing a
* Late Collision, Underrun, or Retry Limit error.
* In addition, tbptr may point beyond BDs beyond still marked
* as ready due to internal pipelining, so we need to look back
* through the BDs and adjust tbptr to point to the last BD
* marked as ready. This may result in some buffers being
* retransmitted.
*/
static
void
tx_restart
(
struct
net_device
*
dev
)
{
struct
fs_enet_private
*
fep
=
netdev_priv
(
dev
);
fcc_t
__iomem
*
fccp
=
fep
->
fcc
.
fccp
;
const
struct
fs_platform_info
*
fpi
=
fep
->
fpi
;
fcc_enet_t
__iomem
*
ep
=
fep
->
fcc
.
ep
;
cbd_t
__iomem
*
curr_tbptr
;
cbd_t
__iomem
*
recheck_bd
;
cbd_t
__iomem
*
prev_bd
;
cbd_t
__iomem
*
last_tx_bd
;
last_tx_bd
=
fep
->
tx_bd_base
+
(
fpi
->
tx_ring
*
sizeof
(
cbd_t
));
/* get the current bd held in TBPTR and scan back from this point */
recheck_bd
=
curr_tbptr
=
(
cbd_t
__iomem
*
)
((
R32
(
ep
,
fen_genfcc
.
fcc_tbptr
)
-
fep
->
ring_mem_addr
)
+
fep
->
ring_base
);
prev_bd
=
(
recheck_bd
==
fep
->
tx_bd_base
)
?
last_tx_bd
:
recheck_bd
-
1
;
/* Move through the bds in reverse, look for the earliest buffer
* that is not ready. Adjust TBPTR to the following buffer */
while
((
CBDR_SC
(
prev_bd
)
&
BD_ENET_TX_READY
)
!=
0
)
{
/* Go back one buffer */
recheck_bd
=
prev_bd
;
/* update the previous buffer */
prev_bd
=
(
prev_bd
==
fep
->
tx_bd_base
)
?
last_tx_bd
:
prev_bd
-
1
;
/* We should never see all bds marked as ready, check anyway */
if
(
recheck_bd
==
curr_tbptr
)
break
;
}
/* Now update the TBPTR and dirty flag to the current buffer */
W32
(
ep
,
fen_genfcc
.
fcc_tbptr
,
(
uint
)
(((
void
*
)
recheck_bd
-
fep
->
ring_base
)
+
fep
->
ring_mem_addr
));
fep
->
dirty_tx
=
recheck_bd
;
C32
(
fccp
,
fcc_gfmr
,
FCC_GFMR_ENT
);
udelay
(
10
);
...
...
drivers/net/wireless/ath/ar9170/usb.c
浏览文件 @
92b4522f
...
...
@@ -739,17 +739,27 @@ static int ar9170_usb_init_device(struct ar9170_usb *aru)
static
void
ar9170_usb_firmware_failed
(
struct
ar9170_usb
*
aru
)
{
struct
device
*
parent
=
aru
->
udev
->
dev
.
parent
;
struct
usb_device
*
udev
;
/*
* Store a copy of the usb_device pointer locally.
* This is because device_release_driver initiates
* ar9170_usb_disconnect, which in turn frees our
* driver context (aru).
*/
udev
=
aru
->
udev
;
complete
(
&
aru
->
firmware_loading_complete
);
/* unbind anything failed */
if
(
parent
)
device_lock
(
parent
);
device_release_driver
(
&
aru
->
udev
->
dev
);
device_release_driver
(
&
udev
->
dev
);
if
(
parent
)
device_unlock
(
parent
);
usb_put_dev
(
aru
->
udev
);
usb_put_dev
(
udev
);
}
static
void
ar9170_usb_firmware_finish
(
const
struct
firmware
*
fw
,
void
*
context
)
...
...
drivers/net/wireless/ath/ath9k/xmit.c
浏览文件 @
92b4522f
...
...
@@ -1198,7 +1198,7 @@ void ath_drain_all_txq(struct ath_softc *sc, bool retry_tx)
int
r
;
ath_print
(
common
,
ATH_DBG_FATAL
,
"
Unable to stop TxDMA. Reset HAL
!
\n
"
);
"
Failed to stop TX DMA. Resetting hardware
!
\n
"
);
spin_lock_bh
(
&
sc
->
sc_resetlock
);
r
=
ath9k_hw_reset
(
ah
,
sc
->
sc_ah
->
curchan
,
false
);
...
...
@@ -1728,6 +1728,8 @@ static int ath_tx_setup_buffer(struct ieee80211_hw *hw, struct ath_buf *bf,
}
else
bf
->
bf_isnullfunc
=
false
;
bf
->
bf_tx_aborted
=
false
;
return
0
;
}
...
...
@@ -1989,7 +1991,7 @@ static int ath_tx_num_badfrms(struct ath_softc *sc, struct ath_buf *bf,
int
nbad
=
0
;
int
isaggr
=
0
;
if
(
bf
->
bf_tx_aborted
)
if
(
bf
->
bf_
lastbf
->
bf_
tx_aborted
)
return
0
;
isaggr
=
bf_isaggr
(
bf
);
...
...
drivers/net/wireless/libertas/rx.c
浏览文件 @
92b4522f
...
...
@@ -329,9 +329,8 @@ static int process_rxed_802_11_packet(struct lbs_private *priv,
/* create the exported radio header */
/* radiotap header */
radiotap_hdr
.
hdr
.
it_version
=
0
;
/* XXX must check this value for pad */
radiotap_hdr
.
hdr
.
it_pad
=
0
;
memset
(
&
radiotap_hdr
,
0
,
sizeof
(
radiotap_hdr
));
/* XXX must check radiotap_hdr.hdr.it_pad for pad */
radiotap_hdr
.
hdr
.
it_len
=
cpu_to_le16
(
sizeof
(
struct
rx_radiotap_hdr
));
radiotap_hdr
.
hdr
.
it_present
=
cpu_to_le32
(
RX_RADIOTAP_PRESENT
);
radiotap_hdr
.
rate
=
convert_mv_rate_to_radiotap
(
prxpd
->
rx_rate
);
...
...
drivers/net/wireless/rt2x00/rt2800usb.c
浏览文件 @
92b4522f
...
...
@@ -413,7 +413,7 @@ static void rt2800usb_write_tx_desc(struct rt2x00_dev *rt2x00dev,
*/
rt2x00_desc_read
(
txi
,
0
,
&
word
);
rt2x00_set_field32
(
&
word
,
TXINFO_W0_USB_DMA_TX_PKT_LEN
,
skb
->
len
-
TXINFO
_DESC_SIZE
);
skb
->
len
+
TXWI
_DESC_SIZE
);
rt2x00_set_field32
(
&
word
,
TXINFO_W0_WIV
,
!
test_bit
(
ENTRY_TXD_ENCRYPT_IV
,
&
txdesc
->
flags
));
rt2x00_set_field32
(
&
word
,
TXINFO_W0_QSEL
,
2
);
...
...
drivers/ssb/pci.c
浏览文件 @
92b4522f
...
...
@@ -625,9 +625,12 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus,
ssb_printk
(
KERN_ERR
PFX
"No SPROM available!
\n
"
);
return
-
ENODEV
;
}
bus
->
sprom_offset
=
(
bus
->
chipco
.
dev
->
id
.
revision
<
31
)
?
SSB_SPROM_BASE1
:
SSB_SPROM_BASE31
;
if
(
bus
->
chipco
.
dev
)
{
/* can be unavailible! */
bus
->
sprom_offset
=
(
bus
->
chipco
.
dev
->
id
.
revision
<
31
)
?
SSB_SPROM_BASE1
:
SSB_SPROM_BASE31
;
}
else
{
bus
->
sprom_offset
=
SSB_SPROM_BASE1
;
}
buf
=
kcalloc
(
SSB_SPROMSIZE_WORDS_R123
,
sizeof
(
u16
),
GFP_KERNEL
);
if
(
!
buf
)
...
...
drivers/ssb/sprom.c
浏览文件 @
92b4522f
...
...
@@ -185,6 +185,7 @@ bool ssb_is_sprom_available(struct ssb_bus *bus)
/* this routine differs from specs as we do not access SPROM directly
on PCMCIA */
if
(
bus
->
bustype
==
SSB_BUSTYPE_PCI
&&
bus
->
chipco
.
dev
&&
/* can be unavailible! */
bus
->
chipco
.
dev
->
id
.
revision
>=
31
)
return
bus
->
chipco
.
capabilities
&
SSB_CHIPCO_CAP_SPROM
;
...
...
include/linux/skbuff.h
浏览文件 @
92b4522f
...
...
@@ -501,7 +501,7 @@ static inline struct sk_buff *alloc_skb_fclone(unsigned int size,
return
__alloc_skb
(
size
,
priority
,
1
,
-
1
);
}
extern
int
skb_recycle_check
(
struct
sk_buff
*
skb
,
int
skb_size
);
extern
bool
skb_recycle_check
(
struct
sk_buff
*
skb
,
int
skb_size
);
extern
struct
sk_buff
*
skb_morph
(
struct
sk_buff
*
dst
,
struct
sk_buff
*
src
);
extern
struct
sk_buff
*
skb_clone
(
struct
sk_buff
*
skb
,
...
...
net/caif/cfserl.c
浏览文件 @
92b4522f
...
...
@@ -59,16 +59,18 @@ static int cfserl_receive(struct cflayer *l, struct cfpkt *newpkt)
u8
stx
=
CFSERL_STX
;
int
ret
;
u16
expectlen
=
0
;
caif_assert
(
newpkt
!=
NULL
);
spin_lock
(
&
layr
->
sync
);
if
(
layr
->
incomplete_frm
!=
NULL
)
{
layr
->
incomplete_frm
=
cfpkt_append
(
layr
->
incomplete_frm
,
newpkt
,
expectlen
);
pkt
=
layr
->
incomplete_frm
;
if
(
pkt
==
NULL
)
if
(
pkt
==
NULL
)
{
spin_unlock
(
&
layr
->
sync
);
return
-
ENOMEM
;
}
}
else
{
pkt
=
newpkt
;
}
...
...
net/core/skbuff.c
浏览文件 @
92b4522f
...
...
@@ -482,22 +482,22 @@ EXPORT_SYMBOL(consume_skb);
* reference count dropping and cleans up the skbuff as if it
* just came from __alloc_skb().
*/
int
skb_recycle_check
(
struct
sk_buff
*
skb
,
int
skb_size
)
bool
skb_recycle_check
(
struct
sk_buff
*
skb
,
int
skb_size
)
{
struct
skb_shared_info
*
shinfo
;
if
(
irqs_disabled
())
return
0
;
return
false
;
if
(
skb_is_nonlinear
(
skb
)
||
skb
->
fclone
!=
SKB_FCLONE_UNAVAILABLE
)
return
0
;
return
false
;
skb_size
=
SKB_DATA_ALIGN
(
skb_size
+
NET_SKB_PAD
);
if
(
skb_end_pointer
(
skb
)
-
skb
->
head
<
skb_size
)
return
0
;
return
false
;
if
(
skb_shared
(
skb
)
||
skb_cloned
(
skb
))
return
0
;
return
false
;
skb_release_head_state
(
skb
);
...
...
@@ -509,7 +509,7 @@ int skb_recycle_check(struct sk_buff *skb, int skb_size)
skb
->
data
=
skb
->
head
+
NET_SKB_PAD
;
skb_reset_tail_pointer
(
skb
);
return
1
;
return
true
;
}
EXPORT_SYMBOL
(
skb_recycle_check
);
...
...
@@ -2996,7 +2996,11 @@ void skb_tstamp_tx(struct sk_buff *orig_skb,
memset
(
serr
,
0
,
sizeof
(
*
serr
));
serr
->
ee
.
ee_errno
=
ENOMSG
;
serr
->
ee
.
ee_origin
=
SO_EE_ORIGIN_TIMESTAMPING
;
bh_lock_sock
(
sk
);
err
=
sock_queue_err_skb
(
sk
,
skb
);
bh_unlock_sock
(
sk
);
if
(
err
)
kfree_skb
(
skb
);
}
...
...
net/ipv4/udp.c
浏览文件 @
92b4522f
...
...
@@ -634,7 +634,9 @@ void __udp4_lib_err(struct sk_buff *skb, u32 info, struct udp_table *udptable)
if
(
!
harderr
||
sk
->
sk_state
!=
TCP_ESTABLISHED
)
goto
out
;
}
else
{
bh_lock_sock
(
sk
);
ip_icmp_error
(
sk
,
skb
,
err
,
uh
->
dest
,
info
,
(
u8
*
)(
uh
+
1
));
bh_unlock_sock
(
sk
);
}
sk
->
sk_err
=
err
;
sk
->
sk_error_report
(
sk
);
...
...
net/ipv6/route.c
浏览文件 @
92b4522f
...
...
@@ -814,7 +814,7 @@ struct dst_entry * ip6_route_output(struct net *net, struct sock *sk,
{
int
flags
=
0
;
if
(
fl
->
oif
||
rt6_need_strict
(
&
fl
->
fl6_dst
))
if
(
(
sk
&&
sk
->
sk_bound_dev_if
)
||
rt6_need_strict
(
&
fl
->
fl6_dst
))
flags
|=
RT6_LOOKUP_F_IFACE
;
if
(
!
ipv6_addr_any
(
&
fl
->
fl6_src
))
...
...
net/ipv6/udp.c
浏览文件 @
92b4522f
...
...
@@ -466,9 +466,11 @@ void __udp6_lib_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
if
(
sk
->
sk_state
!=
TCP_ESTABLISHED
&&
!
np
->
recverr
)
goto
out
;
if
(
np
->
recverr
)
if
(
np
->
recverr
)
{
bh_lock_sock
(
sk
);
ipv6_icmp_error
(
sk
,
skb
,
err
,
uh
->
dest
,
ntohl
(
info
),
(
u8
*
)(
uh
+
1
));
bh_unlock_sock
(
sk
);
}
sk
->
sk_err
=
err
;
sk
->
sk_error_report
(
sk
);
out:
...
...
net/mac80211/chan.c
浏览文件 @
92b4522f
...
...
@@ -5,7 +5,7 @@
#include <linux/nl80211.h>
#include "ieee80211_i.h"
enum
ieee80211_chan_mode
static
enum
ieee80211_chan_mode
__ieee80211_get_channel_mode
(
struct
ieee80211_local
*
local
,
struct
ieee80211_sub_if_data
*
ignore
)
{
...
...
net/phonet/pep.c
浏览文件 @
92b4522f
...
...
@@ -1045,12 +1045,12 @@ static void pep_sock_unhash(struct sock *sk)
lock_sock
(
sk
);
if
((
1
<<
sk
->
sk_state
)
&
~
(
TCPF_CLOSE
|
TCPF_LISTEN
))
{
skparent
=
pn
->
listener
;
sk_del_node_init
(
sk
);
release_sock
(
sk
);
sk
=
skparent
;
pn
=
pep_sk
(
skparent
);
lock_sock
(
sk
);
lock_sock
(
skparent
);
sk_del_node_init
(
sk
);
sk
=
skparent
;
}
/* Unhash a listening sock only when it is closed
* and all of its active connected pipes are closed. */
...
...
net/rds/ib_cm.c
浏览文件 @
92b4522f
...
...
@@ -475,6 +475,7 @@ int rds_ib_cm_handle_connect(struct rdma_cm_id *cm_id,
err
=
rds_ib_setup_qp
(
conn
);
if
(
err
)
{
rds_ib_conn_error
(
conn
,
"rds_ib_setup_qp failed (%d)
\n
"
,
err
);
mutex_unlock
(
&
conn
->
c_cm_lock
);
goto
out
;
}
...
...
net/rds/iw_cm.c
浏览文件 @
92b4522f
...
...
@@ -452,6 +452,7 @@ int rds_iw_cm_handle_connect(struct rdma_cm_id *cm_id,
err
=
rds_iw_setup_qp
(
conn
);
if
(
err
)
{
rds_iw_conn_error
(
conn
,
"rds_iw_setup_qp failed (%d)
\n
"
,
err
);
mutex_unlock
(
&
conn
->
c_cm_lock
);
goto
out
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录