Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
083dd8b8
K
Kernel
项目概览
openeuler
/
Kernel
大约 1 年 前同步成功
通知
5
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
083dd8b8
编写于
4月 04, 2011
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
上级
95b8fbad
a14b289d
变更
38
隐藏空白更改
内联
并排
Showing
38 changed file
with
149 addition
and
68 deletion
+149
-68
drivers/bluetooth/btusb.c
drivers/bluetooth/btusb.c
+5
-1
drivers/net/bonding/bond_alb.h
drivers/net/bonding/bond_alb.h
+1
-1
drivers/net/mlx4/eq.c
drivers/net/mlx4/eq.c
+3
-1
drivers/net/mlx4/mcg.c
drivers/net/mlx4/mcg.c
+4
-3
drivers/net/starfire.c
drivers/net/starfire.c
+1
-5
drivers/net/usb/cdc_eem.c
drivers/net/usb/cdc_eem.c
+1
-1
drivers/net/usb/cdc_ether.c
drivers/net/usb/cdc_ether.c
+1
-1
drivers/net/usb/cdc_ncm.c
drivers/net/usb/cdc_ncm.c
+1
-1
drivers/net/usb/cdc_subset.c
drivers/net/usb/cdc_subset.c
+8
-0
drivers/net/usb/gl620a.c
drivers/net/usb/gl620a.c
+1
-1
drivers/net/usb/net1080.c
drivers/net/usb/net1080.c
+1
-1
drivers/net/usb/plusb.c
drivers/net/usb/plusb.c
+1
-1
drivers/net/usb/rndis_host.c
drivers/net/usb/rndis_host.c
+1
-1
drivers/net/usb/usbnet.c
drivers/net/usb/usbnet.c
+2
-1
drivers/net/usb/zaurus.c
drivers/net/usb/zaurus.c
+4
-4
drivers/net/wireless/ath/ath9k/main.c
drivers/net/wireless/ath/ath9k/main.c
+4
-0
drivers/net/wireless/ath/carl9170/carl9170.h
drivers/net/wireless/ath/carl9170/carl9170.h
+1
-0
drivers/net/wireless/ath/carl9170/main.c
drivers/net/wireless/ath/carl9170/main.c
+1
-0
drivers/net/wireless/ath/carl9170/tx.c
drivers/net/wireless/ath/carl9170/tx.c
+7
-0
drivers/net/wireless/iwlegacy/iwl-core.c
drivers/net/wireless/iwlegacy/iwl-core.c
+10
-0
drivers/net/wireless/iwlegacy/iwl3945-base.c
drivers/net/wireless/iwlegacy/iwl3945-base.c
+3
-4
drivers/net/wireless/rt2x00/rt2800usb.c
drivers/net/wireless/rt2x00/rt2800usb.c
+7
-3
include/linux/netdevice.h
include/linux/netdevice.h
+2
-2
include/linux/usb/usbnet.h
include/linux/usb/usbnet.h
+2
-0
include/net/bluetooth/hci.h
include/net/bluetooth/hci.h
+2
-0
include/net/sctp/structs.h
include/net/sctp/structs.h
+1
-1
net/appletalk/ddp.c
net/appletalk/ddp.c
+6
-5
net/bluetooth/hci_core.c
net/bluetooth/hci_core.c
+8
-2
net/bluetooth/hci_event.c
net/bluetooth/hci_event.c
+3
-1
net/bluetooth/l2cap_core.c
net/bluetooth/l2cap_core.c
+3
-1
net/bluetooth/l2cap_sock.c
net/bluetooth/l2cap_sock.c
+3
-2
net/bluetooth/mgmt.c
net/bluetooth/mgmt.c
+2
-0
net/ipv4/tcp_output.c
net/ipv4/tcp_output.c
+2
-1
net/mac80211/key.c
net/mac80211/key.c
+4
-3
net/mac80211/rc80211_minstrel_ht.c
net/mac80211/rc80211_minstrel_ht.c
+18
-7
net/mac80211/rx.c
net/mac80211/rx.c
+2
-1
net/sctp/sm_make_chunk.c
net/sctp/sm_make_chunk.c
+2
-2
net/wireless/scan.c
net/wireless/scan.c
+21
-10
未找到文件。
drivers/bluetooth/btusb.c
浏览文件 @
083dd8b8
...
...
@@ -71,6 +71,9 @@ static struct usb_device_id btusb_table[] = {
/* Apple MacBookAir3,1, MacBookAir3,2 */
{
USB_DEVICE
(
0x05ac
,
0x821b
)
},
/* Apple MacBookPro8,2 */
{
USB_DEVICE
(
0x05ac
,
0x821a
)
},
/* AVM BlueFRITZ! USB v2.0 */
{
USB_DEVICE
(
0x057c
,
0x3800
)
},
...
...
@@ -690,7 +693,8 @@ static int btusb_send_frame(struct sk_buff *skb)
break
;
case
HCI_ACLDATA_PKT
:
if
(
!
data
->
bulk_tx_ep
||
hdev
->
conn_hash
.
acl_num
<
1
)
if
(
!
data
->
bulk_tx_ep
||
(
hdev
->
conn_hash
.
acl_num
<
1
&&
hdev
->
conn_hash
.
le_num
<
1
))
return
-
ENODEV
;
urb
=
usb_alloc_urb
(
0
,
GFP_ATOMIC
);
...
...
drivers/net/bonding/bond_alb.h
浏览文件 @
083dd8b8
...
...
@@ -74,7 +74,7 @@ struct tlb_client_info {
* packets to a Client that the Hash function
* gave this entry index.
*/
u32
tx_bytes
;
/* Each Client acumulates the BytesTx that
u32
tx_bytes
;
/* Each Client ac
c
umulates the BytesTx that
* were tranmitted to it, and after each
* CallBack the LoadHistory is devided
* by the balance interval
...
...
drivers/net/mlx4/eq.c
浏览文件 @
083dd8b8
...
...
@@ -603,7 +603,9 @@ int mlx4_init_eq_table(struct mlx4_dev *dev)
}
for
(
i
=
0
;
i
<
dev
->
caps
.
num_comp_vectors
;
++
i
)
{
err
=
mlx4_create_eq
(
dev
,
dev
->
caps
.
num_cqs
+
MLX4_NUM_SPARE_EQE
,
err
=
mlx4_create_eq
(
dev
,
dev
->
caps
.
num_cqs
-
dev
->
caps
.
reserved_cqs
+
MLX4_NUM_SPARE_EQE
,
(
dev
->
flags
&
MLX4_FLAG_MSI_X
)
?
i
:
0
,
&
priv
->
eq_table
.
eq
[
i
]);
if
(
err
)
{
...
...
drivers/net/mlx4/mcg.c
浏览文件 @
083dd8b8
...
...
@@ -111,7 +111,7 @@ static int new_steering_entry(struct mlx4_dev *dev, u8 vep_num, u8 port,
u32
members_count
;
struct
mlx4_steer_index
*
new_entry
;
struct
mlx4_promisc_qp
*
pqp
;
struct
mlx4_promisc_qp
*
dqp
;
struct
mlx4_promisc_qp
*
dqp
=
NULL
;
u32
prot
;
int
err
;
u8
pf_num
;
...
...
@@ -184,7 +184,7 @@ static int new_steering_entry(struct mlx4_dev *dev, u8 vep_num, u8 port,
out_alloc:
if
(
dqp
)
{
list_del
(
&
dqp
->
list
);
kfree
(
&
dqp
);
kfree
(
dqp
);
}
list_del
(
&
new_entry
->
list
);
kfree
(
new_entry
);
...
...
@@ -469,7 +469,6 @@ static int remove_promisc_qp(struct mlx4_dev *dev, u8 vep_num, u8 port,
/*remove from list of promisc qps */
list_del
(
&
pqp
->
list
);
kfree
(
pqp
);
/* set the default entry not to include the removed one */
mailbox
=
mlx4_alloc_cmd_mailbox
(
dev
);
...
...
@@ -528,6 +527,8 @@ static int remove_promisc_qp(struct mlx4_dev *dev, u8 vep_num, u8 port,
out_list:
if
(
back_to_list
)
list_add_tail
(
&
pqp
->
list
,
&
s_steer
->
promisc_qps
[
steer
]);
else
kfree
(
pqp
);
out_mutex:
mutex_unlock
(
&
priv
->
mcg_table
.
mutex
);
return
err
;
...
...
drivers/net/starfire.c
浏览文件 @
083dd8b8
...
...
@@ -144,11 +144,7 @@ static int full_duplex[MAX_UNITS] = {0, };
/* Time in jiffies before concluding the transmitter is hung. */
#define TX_TIMEOUT (2 * HZ)
/*
* This SUCKS.
* We need a much better method to determine if dma_addr_t is 64-bit.
*/
#if (defined(__i386__) && defined(CONFIG_HIGHMEM64G)) || defined(__x86_64__) || defined (__ia64__) || defined(__alpha__) || (defined(CONFIG_MIPS) && ((defined(CONFIG_HIGHMEM) && defined(CONFIG_64BIT_PHYS_ADDR)) || defined(CONFIG_64BIT))) || (defined(__powerpc64__) || defined(CONFIG_PHYS_64BIT))
#ifdef CONFIG_ARCH_DMA_ADDR_T_64BIT
/* 64-bit dma_addr_t */
#define ADDR_64BITS
/* This chip uses 64 bit addresses. */
#define netdrv_addr_t __le64
...
...
drivers/net/usb/cdc_eem.c
浏览文件 @
083dd8b8
...
...
@@ -340,7 +340,7 @@ static int eem_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
static
const
struct
driver_info
eem_info
=
{
.
description
=
"CDC EEM Device"
,
.
flags
=
FLAG_ETHER
,
.
flags
=
FLAG_ETHER
|
FLAG_POINTTOPOINT
,
.
bind
=
eem_bind
,
.
rx_fixup
=
eem_rx_fixup
,
.
tx_fixup
=
eem_tx_fixup
,
...
...
drivers/net/usb/cdc_ether.c
浏览文件 @
083dd8b8
...
...
@@ -452,7 +452,7 @@ static int cdc_manage_power(struct usbnet *dev, int on)
static
const
struct
driver_info
cdc_info
=
{
.
description
=
"CDC Ethernet Device"
,
.
flags
=
FLAG_ETHER
,
.
flags
=
FLAG_ETHER
|
FLAG_POINTTOPOINT
,
// .check_connect = cdc_check_connect,
.
bind
=
usbnet_cdc_bind
,
.
unbind
=
usbnet_cdc_unbind
,
...
...
drivers/net/usb/cdc_ncm.c
浏览文件 @
083dd8b8
...
...
@@ -1237,7 +1237,7 @@ static int cdc_ncm_manage_power(struct usbnet *dev, int status)
static
const
struct
driver_info
cdc_ncm_info
=
{
.
description
=
"CDC NCM"
,
.
flags
=
FLAG_NO_SETINT
|
FLAG_MULTI_PACKET
,
.
flags
=
FLAG_
POINTTOPOINT
|
FLAG_
NO_SETINT
|
FLAG_MULTI_PACKET
,
.
bind
=
cdc_ncm_bind
,
.
unbind
=
cdc_ncm_unbind
,
.
check_connect
=
cdc_ncm_check_connect
,
...
...
drivers/net/usb/cdc_subset.c
浏览文件 @
083dd8b8
...
...
@@ -89,6 +89,7 @@ static int always_connected (struct usbnet *dev)
static
const
struct
driver_info
ali_m5632_info
=
{
.
description
=
"ALi M5632"
,
.
flags
=
FLAG_POINTTOPOINT
,
};
#endif
...
...
@@ -110,6 +111,7 @@ static const struct driver_info ali_m5632_info = {
static
const
struct
driver_info
an2720_info
=
{
.
description
=
"AnchorChips/Cypress 2720"
,
.
flags
=
FLAG_POINTTOPOINT
,
// no reset available!
// no check_connect available!
...
...
@@ -132,6 +134,7 @@ static const struct driver_info an2720_info = {
static
const
struct
driver_info
belkin_info
=
{
.
description
=
"Belkin, eTEK, or compatible"
,
.
flags
=
FLAG_POINTTOPOINT
,
};
#endif
/* CONFIG_USB_BELKIN */
...
...
@@ -157,6 +160,7 @@ static const struct driver_info belkin_info = {
static
const
struct
driver_info
epson2888_info
=
{
.
description
=
"Epson USB Device"
,
.
check_connect
=
always_connected
,
.
flags
=
FLAG_POINTTOPOINT
,
.
in
=
4
,
.
out
=
3
,
};
...
...
@@ -173,6 +177,7 @@ static const struct driver_info epson2888_info = {
#define HAVE_HARDWARE
static
const
struct
driver_info
kc2190_info
=
{
.
description
=
"KC Technology KC-190"
,
.
flags
=
FLAG_POINTTOPOINT
,
};
#endif
/* CONFIG_USB_KC2190 */
...
...
@@ -200,16 +205,19 @@ static const struct driver_info kc2190_info = {
static
const
struct
driver_info
linuxdev_info
=
{
.
description
=
"Linux Device"
,
.
check_connect
=
always_connected
,
.
flags
=
FLAG_POINTTOPOINT
,
};
static
const
struct
driver_info
yopy_info
=
{
.
description
=
"Yopy"
,
.
check_connect
=
always_connected
,
.
flags
=
FLAG_POINTTOPOINT
,
};
static
const
struct
driver_info
blob_info
=
{
.
description
=
"Boot Loader OBject"
,
.
check_connect
=
always_connected
,
.
flags
=
FLAG_POINTTOPOINT
,
};
#endif
/* CONFIG_USB_ARMLINUX */
...
...
drivers/net/usb/gl620a.c
浏览文件 @
083dd8b8
...
...
@@ -193,7 +193,7 @@ static int genelink_bind(struct usbnet *dev, struct usb_interface *intf)
static
const
struct
driver_info
genelink_info
=
{
.
description
=
"Genesys GeneLink"
,
.
flags
=
FLAG_FRAMING_GL
|
FLAG_NO_SETINT
,
.
flags
=
FLAG_
POINTTOPOINT
|
FLAG_
FRAMING_GL
|
FLAG_NO_SETINT
,
.
bind
=
genelink_bind
,
.
rx_fixup
=
genelink_rx_fixup
,
.
tx_fixup
=
genelink_tx_fixup
,
...
...
drivers/net/usb/net1080.c
浏览文件 @
083dd8b8
...
...
@@ -560,7 +560,7 @@ static int net1080_bind(struct usbnet *dev, struct usb_interface *intf)
static
const
struct
driver_info
net1080_info
=
{
.
description
=
"NetChip TurboCONNECT"
,
.
flags
=
FLAG_FRAMING_NC
,
.
flags
=
FLAG_
POINTTOPOINT
|
FLAG_
FRAMING_NC
,
.
bind
=
net1080_bind
,
.
reset
=
net1080_reset
,
.
check_connect
=
net1080_check_connect
,
...
...
drivers/net/usb/plusb.c
浏览文件 @
083dd8b8
...
...
@@ -96,7 +96,7 @@ static int pl_reset(struct usbnet *dev)
static
const
struct
driver_info
prolific_info
=
{
.
description
=
"Prolific PL-2301/PL-2302"
,
.
flags
=
FLAG_NO_SETINT
,
.
flags
=
FLAG_
POINTTOPOINT
|
FLAG_
NO_SETINT
,
/* some PL-2302 versions seem to fail usb_set_interface() */
.
reset
=
pl_reset
,
};
...
...
drivers/net/usb/rndis_host.c
浏览文件 @
083dd8b8
...
...
@@ -573,7 +573,7 @@ EXPORT_SYMBOL_GPL(rndis_tx_fixup);
static
const
struct
driver_info
rndis_info
=
{
.
description
=
"RNDIS device"
,
.
flags
=
FLAG_ETHER
|
FLAG_FRAMING_RN
|
FLAG_NO_SETINT
,
.
flags
=
FLAG_ETHER
|
FLAG_
POINTTOPOINT
|
FLAG_
FRAMING_RN
|
FLAG_NO_SETINT
,
.
bind
=
rndis_bind
,
.
unbind
=
rndis_unbind
,
.
status
=
rndis_status
,
...
...
drivers/net/usb/usbnet.c
浏览文件 @
083dd8b8
...
...
@@ -1380,7 +1380,8 @@ usbnet_probe (struct usb_interface *udev, const struct usb_device_id *prod)
// else "eth%d" when there's reasonable doubt. userspace
// can rename the link if it knows better.
if
((
dev
->
driver_info
->
flags
&
FLAG_ETHER
)
!=
0
&&
(
net
->
dev_addr
[
0
]
&
0x02
)
==
0
)
((
dev
->
driver_info
->
flags
&
FLAG_POINTTOPOINT
)
==
0
||
(
net
->
dev_addr
[
0
]
&
0x02
)
==
0
))
strcpy
(
net
->
name
,
"eth%d"
);
/* WLAN devices should always be named "wlan%d" */
if
((
dev
->
driver_info
->
flags
&
FLAG_WLAN
)
!=
0
)
...
...
drivers/net/usb/zaurus.c
浏览文件 @
083dd8b8
...
...
@@ -102,7 +102,7 @@ static int always_connected (struct usbnet *dev)
static
const
struct
driver_info
zaurus_sl5x00_info
=
{
.
description
=
"Sharp Zaurus SL-5x00"
,
.
flags
=
FLAG_FRAMING_Z
,
.
flags
=
FLAG_
POINTTOPOINT
|
FLAG_
FRAMING_Z
,
.
check_connect
=
always_connected
,
.
bind
=
zaurus_bind
,
.
unbind
=
usbnet_cdc_unbind
,
...
...
@@ -112,7 +112,7 @@ static const struct driver_info zaurus_sl5x00_info = {
static
const
struct
driver_info
zaurus_pxa_info
=
{
.
description
=
"Sharp Zaurus, PXA-2xx based"
,
.
flags
=
FLAG_FRAMING_Z
,
.
flags
=
FLAG_
POINTTOPOINT
|
FLAG_
FRAMING_Z
,
.
check_connect
=
always_connected
,
.
bind
=
zaurus_bind
,
.
unbind
=
usbnet_cdc_unbind
,
...
...
@@ -122,7 +122,7 @@ static const struct driver_info zaurus_pxa_info = {
static
const
struct
driver_info
olympus_mxl_info
=
{
.
description
=
"Olympus R1000"
,
.
flags
=
FLAG_FRAMING_Z
,
.
flags
=
FLAG_
POINTTOPOINT
|
FLAG_
FRAMING_Z
,
.
check_connect
=
always_connected
,
.
bind
=
zaurus_bind
,
.
unbind
=
usbnet_cdc_unbind
,
...
...
@@ -258,7 +258,7 @@ static int blan_mdlm_bind(struct usbnet *dev, struct usb_interface *intf)
static
const
struct
driver_info
bogus_mdlm_info
=
{
.
description
=
"pseudo-MDLM (BLAN) device"
,
.
flags
=
FLAG_FRAMING_Z
,
.
flags
=
FLAG_
POINTTOPOINT
|
FLAG_
FRAMING_Z
,
.
check_connect
=
always_connected
,
.
tx_fixup
=
zaurus_tx_fixup
,
.
bind
=
blan_mdlm_bind
,
...
...
drivers/net/wireless/ath/ath9k/main.c
浏览文件 @
083dd8b8
...
...
@@ -1048,6 +1048,8 @@ static int ath9k_start(struct ieee80211_hw *hw)
"Starting driver with initial channel: %d MHz
\n
"
,
curchan
->
center_freq
);
ath9k_ps_wakeup
(
sc
);
mutex_lock
(
&
sc
->
mutex
);
/* setup initial channel */
...
...
@@ -1143,6 +1145,8 @@ static int ath9k_start(struct ieee80211_hw *hw)
mutex_unlock:
mutex_unlock
(
&
sc
->
mutex
);
ath9k_ps_restore
(
sc
);
return
r
;
}
...
...
drivers/net/wireless/ath/carl9170/carl9170.h
浏览文件 @
083dd8b8
...
...
@@ -443,6 +443,7 @@ struct carl9170_ba_stats {
u8
ampdu_len
;
u8
ampdu_ack_len
;
bool
clear
;
bool
req
;
};
struct
carl9170_sta_info
{
...
...
drivers/net/wireless/ath/carl9170/main.c
浏览文件 @
083dd8b8
...
...
@@ -1355,6 +1355,7 @@ static int carl9170_op_ampdu_action(struct ieee80211_hw *hw,
tid_info
=
rcu_dereference
(
sta_info
->
agg
[
tid
]);
sta_info
->
stats
[
tid
].
clear
=
true
;
sta_info
->
stats
[
tid
].
req
=
false
;
if
(
tid_info
)
{
bitmap_zero
(
tid_info
->
bitmap
,
CARL9170_BAW_SIZE
);
...
...
drivers/net/wireless/ath/carl9170/tx.c
浏览文件 @
083dd8b8
...
...
@@ -383,6 +383,7 @@ static void carl9170_tx_status_process_ampdu(struct ar9170 *ar,
if
(
sta_info
->
stats
[
tid
].
clear
)
{
sta_info
->
stats
[
tid
].
clear
=
false
;
sta_info
->
stats
[
tid
].
req
=
false
;
sta_info
->
stats
[
tid
].
ampdu_len
=
0
;
sta_info
->
stats
[
tid
].
ampdu_ack_len
=
0
;
}
...
...
@@ -391,10 +392,16 @@ static void carl9170_tx_status_process_ampdu(struct ar9170 *ar,
if
(
txinfo
->
status
.
rates
[
0
].
count
==
1
)
sta_info
->
stats
[
tid
].
ampdu_ack_len
++
;
if
(
!
(
txinfo
->
flags
&
IEEE80211_TX_STAT_ACK
))
sta_info
->
stats
[
tid
].
req
=
true
;
if
(
super
->
f
.
mac_control
&
cpu_to_le16
(
AR9170_TX_MAC_IMM_BA
))
{
super
->
s
.
rix
=
sta_info
->
stats
[
tid
].
ampdu_len
;
super
->
s
.
cnt
=
sta_info
->
stats
[
tid
].
ampdu_ack_len
;
txinfo
->
flags
|=
IEEE80211_TX_STAT_AMPDU
;
if
(
sta_info
->
stats
[
tid
].
req
)
txinfo
->
flags
|=
IEEE80211_TX_STAT_AMPDU_NO_BACK
;
sta_info
->
stats
[
tid
].
clear
=
true
;
}
spin_unlock_bh
(
&
tid_info
->
lock
);
...
...
drivers/net/wireless/iwlegacy/iwl-core.c
浏览文件 @
083dd8b8
...
...
@@ -1805,6 +1805,15 @@ iwl_legacy_mac_change_interface(struct ieee80211_hw *hw,
mutex_lock
(
&
priv
->
mutex
);
if
(
!
ctx
->
vif
||
!
iwl_legacy_is_ready_rf
(
priv
))
{
/*
* Huh? But wait ... this can maybe happen when
* we're in the middle of a firmware restart!
*/
err
=
-
EBUSY
;
goto
out
;
}
interface_modes
=
ctx
->
interface_modes
|
ctx
->
exclusive_interface_modes
;
if
(
!
(
interface_modes
&
BIT
(
newtype
)))
{
...
...
@@ -1832,6 +1841,7 @@ iwl_legacy_mac_change_interface(struct ieee80211_hw *hw,
/* success */
iwl_legacy_teardown_interface
(
priv
,
vif
,
true
);
vif
->
type
=
newtype
;
vif
->
p2p
=
newp2p
;
err
=
iwl_legacy_setup_interface
(
priv
,
ctx
);
WARN_ON
(
err
);
/*
...
...
drivers/net/wireless/iwlegacy/iwl3945-base.c
浏览文件 @
083dd8b8
...
...
@@ -93,6 +93,7 @@ MODULE_LICENSE("GPL");
struct
iwl_mod_params
iwl3945_mod_params
=
{
.
sw_crypto
=
1
,
.
restart_fw
=
1
,
.
disable_hw_scan
=
1
,
/* the rest are 0 by default */
};
...
...
@@ -3960,8 +3961,7 @@ static int iwl3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *e
* "the hard way", rather than using device's scan.
*/
if
(
iwl3945_mod_params
.
disable_hw_scan
)
{
dev_printk
(
KERN_DEBUG
,
&
(
pdev
->
dev
),
"sw scan support is deprecated
\n
"
);
IWL_DEBUG_INFO
(
priv
,
"Disabling hw_scan
\n
"
);
iwl3945_hw_ops
.
hw_scan
=
NULL
;
}
...
...
@@ -4280,8 +4280,7 @@ MODULE_PARM_DESC(swcrypto,
"using software crypto (default 1 [software])"
);
module_param_named
(
disable_hw_scan
,
iwl3945_mod_params
.
disable_hw_scan
,
int
,
S_IRUGO
);
MODULE_PARM_DESC
(
disable_hw_scan
,
"disable hardware scanning (default 0) (deprecated)"
);
MODULE_PARM_DESC
(
disable_hw_scan
,
"disable hardware scanning (default 1)"
);
#ifdef CONFIG_IWLWIFI_LEGACY_DEBUG
module_param_named
(
debug
,
iwlegacy_debug_level
,
uint
,
S_IRUGO
|
S_IWUSR
);
MODULE_PARM_DESC
(
debug
,
"debug output mask"
);
...
...
drivers/net/wireless/rt2x00/rt2800usb.c
浏览文件 @
083dd8b8
...
...
@@ -730,8 +730,12 @@ static struct usb_device_id rt2800usb_device_table[] = {
{
USB_DEVICE
(
0x050d
,
0x8053
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x050d
,
0x805c
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x050d
,
0x815c
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x050d
,
0x825b
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x050d
,
0x935a
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x050d
,
0x935b
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
/* Buffalo */
{
USB_DEVICE
(
0x0411
,
0x00e8
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x0411
,
0x016f
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
/* Conceptronic */
{
USB_DEVICE
(
0x14b2
,
0x3c06
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x14b2
,
0x3c07
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
...
...
@@ -818,6 +822,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
/* Pegatron */
{
USB_DEVICE
(
0x1d4d
,
0x000c
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x1d4d
,
0x000e
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x1d4d
,
0x0011
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
/* Philips */
{
USB_DEVICE
(
0x0471
,
0x200f
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
/* Planex */
...
...
@@ -899,6 +904,8 @@ static struct usb_device_id rt2800usb_device_table[] = {
{
USB_DEVICE
(
0x148f
,
0x3572
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
/* Sitecom */
{
USB_DEVICE
(
0x0df6
,
0x0041
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
/* Toshiba */
{
USB_DEVICE
(
0x0930
,
0x0a07
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
/* Zinwell */
{
USB_DEVICE
(
0x5a57
,
0x0284
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
#endif
...
...
@@ -961,7 +968,6 @@ static struct usb_device_id rt2800usb_device_table[] = {
{
USB_DEVICE
(
0x05a6
,
0x0101
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x1d4d
,
0x0002
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x1d4d
,
0x0010
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x1d4d
,
0x0011
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
/* Planex */
{
USB_DEVICE
(
0x2019
,
0x5201
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x2019
,
0xab24
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
...
...
@@ -975,8 +981,6 @@ static struct usb_device_id rt2800usb_device_table[] = {
/* Sweex */
{
USB_DEVICE
(
0x177f
,
0x0153
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
{
USB_DEVICE
(
0x177f
,
0x0313
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
/* Toshiba */
{
USB_DEVICE
(
0x0930
,
0x0a07
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
/* Zyxel */
{
USB_DEVICE
(
0x0586
,
0x341a
),
USB_DEVICE_DATA
(
&
rt2800usb_ops
)
},
#endif
...
...
include/linux/netdevice.h
浏览文件 @
083dd8b8
...
...
@@ -2599,8 +2599,8 @@ static inline int dev_ethtool_get_settings(struct net_device *dev,
static
inline
u32
dev_ethtool_get_rx_csum
(
struct
net_device
*
dev
)
{
if
(
dev
->
hw_
features
&
NETIF_F_RXCSUM
)
return
!!
(
dev
->
features
&
NETIF_F_RXCSUM
)
;
if
(
dev
->
features
&
NETIF_F_RXCSUM
)
return
1
;
if
(
!
dev
->
ethtool_ops
||
!
dev
->
ethtool_ops
->
get_rx_csum
)
return
0
;
return
dev
->
ethtool_ops
->
get_rx_csum
(
dev
);
...
...
include/linux/usb/usbnet.h
浏览文件 @
083dd8b8
...
...
@@ -97,6 +97,8 @@ struct driver_info {
#define FLAG_LINK_INTR 0x0800
/* updates link (carrier) status */
#define FLAG_POINTTOPOINT 0x1000
/* possibly use "usb%d" names */
/*
* Indicates to usbnet, that USB driver accumulates multiple IP packets.
* Affects statistic (counters) and short packet handling.
...
...
include/net/bluetooth/hci.h
浏览文件 @
083dd8b8
...
...
@@ -84,6 +84,8 @@ enum {
HCI_SERVICE_CACHE
,
HCI_LINK_KEYS
,
HCI_DEBUG_KEYS
,
HCI_RESET
,
};
/* HCI ioctl defines */
...
...
include/net/sctp/structs.h
浏览文件 @
083dd8b8
...
...
@@ -422,7 +422,7 @@ struct sctp_cookie {
__u32
adaptation_ind
;
__u8
auth_random
[
sizeof
(
sctp_paramhdr_t
)
+
SCTP_AUTH_RANDOM_LENGTH
];
__u8
auth_hmacs
[
SCTP_AUTH_NUM_HMACS
+
2
];
__u8
auth_hmacs
[
SCTP_AUTH_NUM_HMACS
*
sizeof
(
__u16
)
+
2
];
__u8
auth_chunks
[
sizeof
(
sctp_paramhdr_t
)
+
SCTP_AUTH_MAX_CHUNKS
];
/* This is a shim for my peer's INIT packet, followed by
...
...
net/appletalk/ddp.c
浏览文件 @
083dd8b8
...
...
@@ -1051,16 +1051,17 @@ static int atalk_release(struct socket *sock)
{
struct
sock
*
sk
=
sock
->
sk
;
sock_hold
(
sk
);
lock_sock
(
sk
);
if
(
sk
)
{
sock_hold
(
sk
);
lock_sock
(
sk
);
sock_orphan
(
sk
);
sock
->
sk
=
NULL
;
atalk_destroy_socket
(
sk
);
}
release_sock
(
sk
);
sock_put
(
sk
);
release_sock
(
sk
);
sock_put
(
sk
);
}
return
0
;
}
...
...
net/bluetooth/hci_core.c
浏览文件 @
083dd8b8
...
...
@@ -186,6 +186,7 @@ static void hci_reset_req(struct hci_dev *hdev, unsigned long opt)
BT_DBG
(
"%s %ld"
,
hdev
->
name
,
opt
);
/* Reset device */
set_bit
(
HCI_RESET
,
&
hdev
->
flags
);
hci_send_cmd
(
hdev
,
HCI_OP_RESET
,
0
,
NULL
);
}
...
...
@@ -213,8 +214,10 @@ static void hci_init_req(struct hci_dev *hdev, unsigned long opt)
/* Mandatory initialization */
/* Reset */
if
(
!
test_bit
(
HCI_QUIRK_NO_RESET
,
&
hdev
->
quirks
))
if
(
!
test_bit
(
HCI_QUIRK_NO_RESET
,
&
hdev
->
quirks
))
{
set_bit
(
HCI_RESET
,
&
hdev
->
flags
);
hci_send_cmd
(
hdev
,
HCI_OP_RESET
,
0
,
NULL
);
}
/* Read Local Supported Features */
hci_send_cmd
(
hdev
,
HCI_OP_READ_LOCAL_FEATURES
,
0
,
NULL
);
...
...
@@ -584,6 +587,9 @@ static int hci_dev_do_close(struct hci_dev *hdev)
hci_req_cancel
(
hdev
,
ENODEV
);
hci_req_lock
(
hdev
);
/* Stop timer, it might be running */
del_timer_sync
(
&
hdev
->
cmd_timer
);
if
(
!
test_and_clear_bit
(
HCI_UP
,
&
hdev
->
flags
))
{
hci_req_unlock
(
hdev
);
return
0
;
...
...
@@ -623,7 +629,6 @@ static int hci_dev_do_close(struct hci_dev *hdev)
/* Drop last sent command */
if
(
hdev
->
sent_cmd
)
{
del_timer_sync
(
&
hdev
->
cmd_timer
);
kfree_skb
(
hdev
->
sent_cmd
);
hdev
->
sent_cmd
=
NULL
;
}
...
...
@@ -1074,6 +1079,7 @@ static void hci_cmd_timer(unsigned long arg)
BT_ERR
(
"%s command tx timeout"
,
hdev
->
name
);
atomic_set
(
&
hdev
->
cmd_cnt
,
1
);
clear_bit
(
HCI_RESET
,
&
hdev
->
flags
);
tasklet_schedule
(
&
hdev
->
cmd_task
);
}
...
...
net/bluetooth/hci_event.c
浏览文件 @
083dd8b8
...
...
@@ -183,6 +183,8 @@ static void hci_cc_reset(struct hci_dev *hdev, struct sk_buff *skb)
BT_DBG
(
"%s status 0x%x"
,
hdev
->
name
,
status
);
clear_bit
(
HCI_RESET
,
&
hdev
->
flags
);
hci_req_complete
(
hdev
,
HCI_OP_RESET
,
status
);
}
...
...
@@ -1847,7 +1849,7 @@ static inline void hci_cmd_status_evt(struct hci_dev *hdev, struct sk_buff *skb)
if
(
ev
->
opcode
!=
HCI_OP_NOP
)
del_timer
(
&
hdev
->
cmd_timer
);
if
(
ev
->
ncmd
)
{
if
(
ev
->
ncmd
&&
!
test_bit
(
HCI_RESET
,
&
hdev
->
flags
)
)
{
atomic_set
(
&
hdev
->
cmd_cnt
,
1
);
if
(
!
skb_queue_empty
(
&
hdev
->
cmd_q
))
tasklet_schedule
(
&
hdev
->
cmd_task
);
...
...
net/bluetooth/l2cap_core.c
浏览文件 @
083dd8b8
...
...
@@ -1116,7 +1116,9 @@ int l2cap_ertm_send(struct sock *sk)
bt_cb
(
skb
)
->
tx_seq
=
pi
->
next_tx_seq
;
pi
->
next_tx_seq
=
(
pi
->
next_tx_seq
+
1
)
%
64
;
pi
->
unacked_frames
++
;
if
(
bt_cb
(
skb
)
->
retries
==
1
)
pi
->
unacked_frames
++
;
pi
->
frames_sent
++
;
if
(
skb_queue_is_last
(
TX_QUEUE
(
sk
),
skb
))
...
...
net/bluetooth/l2cap_sock.c
浏览文件 @
083dd8b8
...
...
@@ -923,8 +923,9 @@ void __l2cap_sock_close(struct sock *sk, int reason)
rsp
.
status
=
cpu_to_le16
(
L2CAP_CS_NO_INFO
);
l2cap_send_cmd
(
conn
,
l2cap_pi
(
sk
)
->
ident
,
L2CAP_CONN_RSP
,
sizeof
(
rsp
),
&
rsp
);
}
else
l2cap_chan_del
(
sk
,
reason
);
}
l2cap_chan_del
(
sk
,
reason
);
break
;
case
BT_CONNECT
:
...
...
net/bluetooth/mgmt.c
浏览文件 @
083dd8b8
...
...
@@ -1230,6 +1230,8 @@ static int user_confirm_reply(struct sock *sk, u16 index, unsigned char *data,
if
(
!
hdev
)
return
cmd_status
(
sk
,
index
,
mgmt_op
,
ENODEV
);
hci_dev_lock_bh
(
hdev
);
if
(
!
test_bit
(
HCI_UP
,
&
hdev
->
flags
))
{
err
=
cmd_status
(
sk
,
index
,
mgmt_op
,
ENETDOWN
);
goto
failed
;
...
...
net/ipv4/tcp_output.c
浏览文件 @
083dd8b8
...
...
@@ -1003,7 +1003,8 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len,
int
nlen
;
u8
flags
;
BUG_ON
(
len
>
skb
->
len
);
if
(
WARN_ON
(
len
>
skb
->
len
))
return
-
EINVAL
;
nsize
=
skb_headlen
(
skb
)
-
len
;
if
(
nsize
<
0
)
...
...
net/mac80211/key.c
浏览文件 @
083dd8b8
...
...
@@ -342,7 +342,7 @@ struct ieee80211_key *ieee80211_key_alloc(u32 cipher, int idx, size_t key_len,
if
(
IS_ERR
(
key
->
u
.
ccmp
.
tfm
))
{
err
=
PTR_ERR
(
key
->
u
.
ccmp
.
tfm
);
kfree
(
key
);
key
=
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
}
break
;
case
WLAN_CIPHER_SUITE_AES_CMAC
:
...
...
@@ -360,7 +360,7 @@ struct ieee80211_key *ieee80211_key_alloc(u32 cipher, int idx, size_t key_len,
if
(
IS_ERR
(
key
->
u
.
aes_cmac
.
tfm
))
{
err
=
PTR_ERR
(
key
->
u
.
aes_cmac
.
tfm
);
kfree
(
key
);
key
=
ERR_PTR
(
err
);
return
ERR_PTR
(
err
);
}
break
;
}
...
...
@@ -400,11 +400,12 @@ int ieee80211_key_link(struct ieee80211_key *key,
{
struct
ieee80211_key
*
old_key
;
int
idx
,
ret
;
bool
pairwise
=
key
->
conf
.
flags
&
IEEE80211_KEY_FLAG_PAIRWISE
;
bool
pairwise
;
BUG_ON
(
!
sdata
);
BUG_ON
(
!
key
);
pairwise
=
key
->
conf
.
flags
&
IEEE80211_KEY_FLAG_PAIRWISE
;
idx
=
key
->
conf
.
keyidx
;
key
->
local
=
sdata
->
local
;
key
->
sdata
=
sdata
;
...
...
net/mac80211/rc80211_minstrel_ht.c
浏览文件 @
083dd8b8
...
...
@@ -659,18 +659,14 @@ minstrel_ht_update_caps(void *priv, struct ieee80211_supported_band *sband,
struct
ieee80211_mcs_info
*
mcs
=
&
sta
->
ht_cap
.
mcs
;
struct
ieee80211_local
*
local
=
hw_to_local
(
mp
->
hw
);
u16
sta_cap
=
sta
->
ht_cap
.
cap
;
int
n_supported
=
0
;
int
ack_dur
;
int
stbc
;
int
i
;
/* fall back to the old minstrel for legacy stations */
if
(
!
sta
->
ht_cap
.
ht_supported
)
{
msp
->
is_ht
=
false
;
memset
(
&
msp
->
legacy
,
0
,
sizeof
(
msp
->
legacy
));
msp
->
legacy
.
r
=
msp
->
ratelist
;
msp
->
legacy
.
sample_table
=
msp
->
sample_table
;
return
mac80211_minstrel
.
rate_init
(
priv
,
sband
,
sta
,
&
msp
->
legacy
);
}
if
(
!
sta
->
ht_cap
.
ht_supported
)
goto
use_legacy
;
BUILD_BUG_ON
(
ARRAY_SIZE
(
minstrel_mcs_groups
)
!=
MINSTREL_MAX_STREAMS
*
MINSTREL_STREAM_GROUPS
);
...
...
@@ -725,7 +721,22 @@ minstrel_ht_update_caps(void *priv, struct ieee80211_supported_band *sband,
mi
->
groups
[
i
].
supported
=
mcs
->
rx_mask
[
minstrel_mcs_groups
[
i
].
streams
-
1
];
if
(
mi
->
groups
[
i
].
supported
)
n_supported
++
;
}
if
(
!
n_supported
)
goto
use_legacy
;
return
;
use_legacy:
msp
->
is_ht
=
false
;
memset
(
&
msp
->
legacy
,
0
,
sizeof
(
msp
->
legacy
));
msp
->
legacy
.
r
=
msp
->
ratelist
;
msp
->
legacy
.
sample_table
=
msp
->
sample_table
;
return
mac80211_minstrel
.
rate_init
(
priv
,
sband
,
sta
,
&
msp
->
legacy
);
}
static
void
...
...
net/mac80211/rx.c
浏览文件 @
083dd8b8
...
...
@@ -612,7 +612,8 @@ static void ieee80211_sta_reorder_release(struct ieee80211_hw *hw,
skipped
++
;
continue
;
}
if
(
!
time_after
(
jiffies
,
tid_agg_rx
->
reorder_time
[
j
]
+
if
(
skipped
&&
!
time_after
(
jiffies
,
tid_agg_rx
->
reorder_time
[
j
]
+
HT_RX_REORDER_BUF_TIMEOUT
))
goto
set_release_timer
;
...
...
net/sctp/sm_make_chunk.c
浏览文件 @
083dd8b8
...
...
@@ -3106,10 +3106,10 @@ struct sctp_chunk *sctp_process_asconf(struct sctp_association *asoc,
/* create an ASCONF_ACK chunk.
* Based on the definitions of parameters, we know that the size of
* ASCONF_ACK parameters are less than or equal to the
twice
of ASCONF
* ASCONF_ACK parameters are less than or equal to the
fourfold
of ASCONF
* parameters.
*/
asconf_ack
=
sctp_make_asconf_ack
(
asoc
,
serial
,
chunk_len
*
2
);
asconf_ack
=
sctp_make_asconf_ack
(
asoc
,
serial
,
chunk_len
*
4
);
if
(
!
asconf_ack
)
goto
done
;
...
...
net/wireless/scan.c
浏览文件 @
083dd8b8
...
...
@@ -123,6 +123,15 @@ void cfg80211_bss_age(struct cfg80211_registered_device *dev,
}
}
/* must hold dev->bss_lock! */
static
void
__cfg80211_unlink_bss
(
struct
cfg80211_registered_device
*
dev
,
struct
cfg80211_internal_bss
*
bss
)
{
list_del_init
(
&
bss
->
list
);
rb_erase
(
&
bss
->
rbn
,
&
dev
->
bss_tree
);
kref_put
(
&
bss
->
ref
,
bss_release
);
}
/* must hold dev->bss_lock! */
void
cfg80211_bss_expire
(
struct
cfg80211_registered_device
*
dev
)
{
...
...
@@ -134,9 +143,7 @@ void cfg80211_bss_expire(struct cfg80211_registered_device *dev)
continue
;
if
(
!
time_after
(
jiffies
,
bss
->
ts
+
IEEE80211_SCAN_RESULT_EXPIRE
))
continue
;
list_del
(
&
bss
->
list
);
rb_erase
(
&
bss
->
rbn
,
&
dev
->
bss_tree
);
kref_put
(
&
bss
->
ref
,
bss_release
);
__cfg80211_unlink_bss
(
dev
,
bss
);
expired
=
true
;
}
...
...
@@ -585,16 +592,23 @@ cfg80211_inform_bss_frame(struct wiphy *wiphy,
struct
cfg80211_internal_bss
*
res
;
size_t
ielen
=
len
-
offsetof
(
struct
ieee80211_mgmt
,
u
.
probe_resp
.
variable
);
size_t
privsz
=
wiphy
->
bss_priv_size
;
size_t
privsz
;
if
(
WARN_ON
(
!
mgmt
))
return
NULL
;
if
(
WARN_ON
(
!
wiphy
))
return
NULL
;
if
(
WARN_ON
(
wiphy
->
signal_type
==
CFG80211_SIGNAL_TYPE_UNSPEC
&&
(
signal
<
0
||
signal
>
100
)))
return
NULL
;
if
(
WARN_ON
(
!
mgmt
||
!
wiphy
||
len
<
offsetof
(
struct
ieee80211_mgmt
,
u
.
probe_resp
.
variable
)))
if
(
WARN_ON
(
len
<
offsetof
(
struct
ieee80211_mgmt
,
u
.
probe_resp
.
variable
)))
return
NULL
;
privsz
=
wiphy
->
bss_priv_size
;
res
=
kzalloc
(
sizeof
(
*
res
)
+
privsz
+
ielen
,
gfp
);
if
(
!
res
)
return
NULL
;
...
...
@@ -662,11 +676,8 @@ void cfg80211_unlink_bss(struct wiphy *wiphy, struct cfg80211_bss *pub)
spin_lock_bh
(
&
dev
->
bss_lock
);
if
(
!
list_empty
(
&
bss
->
list
))
{
list_del_init
(
&
bss
->
list
);
__cfg80211_unlink_bss
(
dev
,
bss
);
dev
->
bss_generation
++
;
rb_erase
(
&
bss
->
rbn
,
&
dev
->
bss_tree
);
kref_put
(
&
bss
->
ref
,
bss_release
);
}
spin_unlock_bh
(
&
dev
->
bss_lock
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录