Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
255333c1
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
255333c1
编写于
3月 05, 2008
作者:
D
David S. Miller
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: net/mac80211/rc80211_pid_algo.c
上级
9a43b709
0d66afe7
变更
34
隐藏空白更改
内联
并排
Showing
34 changed file
with
115 addition
and
131 deletion
+115
-131
MAINTAINERS
MAINTAINERS
+4
-28
drivers/net/Kconfig
drivers/net/Kconfig
+1
-1
drivers/net/atarilance.c
drivers/net/atarilance.c
+2
-3
drivers/net/e100.c
drivers/net/e100.c
+3
-26
drivers/net/ixgbe/ixgbe_main.c
drivers/net/ixgbe/ixgbe_main.c
+1
-1
drivers/net/mv643xx_eth.c
drivers/net/mv643xx_eth.c
+1
-0
drivers/net/pcmcia/axnet_cs.c
drivers/net/pcmcia/axnet_cs.c
+1
-1
drivers/net/phy/Kconfig
drivers/net/phy/Kconfig
+1
-0
drivers/net/phy/davicom.c
drivers/net/phy/davicom.c
+14
-3
drivers/net/pppol2tp.c
drivers/net/pppol2tp.c
+7
-1
drivers/net/s2io.c
drivers/net/s2io.c
+1
-1
drivers/net/tulip/de2104x.c
drivers/net/tulip/de2104x.c
+2
-1
drivers/net/tun.c
drivers/net/tun.c
+5
-1
drivers/net/wireless/b43legacy/main.c
drivers/net/wireless/b43legacy/main.c
+1
-1
drivers/net/wireless/libertas/cmdresp.c
drivers/net/wireless/libertas/cmdresp.c
+3
-5
drivers/net/wireless/p54common.c
drivers/net/wireless/p54common.c
+12
-8
drivers/net/wireless/p54common.h
drivers/net/wireless/p54common.h
+4
-4
drivers/net/wireless/rndis_wlan.c
drivers/net/wireless/rndis_wlan.c
+3
-5
drivers/ssb/driver_pcicore.c
drivers/ssb/driver_pcicore.c
+4
-1
include/linux/netpoll.h
include/linux/netpoll.h
+4
-3
include/net/inet_sock.h
include/net/inet_sock.h
+2
-1
net/bluetooth/l2cap.c
net/bluetooth/l2cap.c
+2
-1
net/core/neighbour.c
net/core/neighbour.c
+1
-1
net/core/netpoll.c
net/core/netpoll.c
+8
-4
net/ipv4/Kconfig
net/ipv4/Kconfig
+1
-1
net/ipv4/ipconfig.c
net/ipv4/ipconfig.c
+2
-2
net/ipv4/tcp_bic.c
net/ipv4/tcp_bic.c
+3
-2
net/ipv4/tcp_input.c
net/ipv4/tcp_input.c
+9
-5
net/ipv6/Kconfig
net/ipv6/Kconfig
+1
-1
net/irda/ircomm/ircomm_core.c
net/irda/ircomm/ircomm_core.c
+5
-3
net/irda/irlan/irlan_common.c
net/irda/irlan/irlan_common.c
+1
-3
net/irda/irproc.c
net/irda/irproc.c
+3
-5
net/iucv/iucv.c
net/iucv/iucv.c
+0
-2
net/sctp/proc.c
net/sctp/proc.c
+3
-6
未找到文件。
MAINTAINERS
浏览文件 @
255333c1
...
...
@@ -2039,43 +2039,19 @@ M: kernel@wantstofly.org
L: netdev@vger.kernel.org
S: Maintained
INTEL
PRO/100 ETHERNET SUPPORT
INTEL
ETHERNET DRIVERS (e100/e1000/e1000e/igb/ixgb/ixgbe)
P: Auke Kok
M: auke-jan.h.kok@intel.com
P: Jesse Brandeburg
M: jesse.brandeburg@intel.com
P: Jeff Kirsher
M: jeffrey.t.kirsher@intel.com
P: Bruce Allan
M: bruce.w.allan@intel.com
P: John Ronciak
M: john.ronciak@intel.com
L: e1000-devel@lists.sourceforge.net
W: http://sourceforge.net/projects/e1000/
S: Supported
INTEL PRO/1000 GIGABIT ETHERNET SUPPORT
P: Auke Kok
M: auke-jan.h.kok@intel.com
P: Jesse Brandeburg
M: jesse.brandeburg@intel.com
P: Jeff Kirsher
M: jeffrey.t.kirsher@intel.com
P: John Ronciak
M: john.ronciak@intel.com
L: e1000-devel@lists.sourceforge.net
W: http://sourceforge.net/projects/e1000/
S: Supported
INTEL PRO/10GbE SUPPORT
P: Ayyappan Veeraiyan
M: ayyappan.veeraiyan@intel.com
P: Auke Kok
M: auke-jan.h.kok@intel.com
P: Jesse Brandeburg
M: jesse.brandeburg@intel.com
P: John Ronciak
M: john.ronciak@intel.com
L: e1000-devel@lists.sourceforge.net
W: http://sourceforge.net/projects/e1000/
W: http://e1000.sourceforge.net/
S: Supported
INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
...
...
drivers/net/Kconfig
浏览文件 @
255333c1
...
...
@@ -2519,7 +2519,7 @@ config CHELSIO_T3
config EHEA
tristate "eHEA Ethernet support"
depends on IBMEBUS && INET
depends on IBMEBUS && INET
&& SPARSEMEM
select INET_LRO
---help---
This driver supports the IBM pSeries eHEA ethernet adapter.
...
...
drivers/net/atarilance.c
浏览文件 @
255333c1
...
...
@@ -336,8 +336,6 @@ struct lance_addr {
/***************************** Prototypes *****************************/
static
int
addr_accessible
(
volatile
void
*
regp
,
int
wordflag
,
int
writeflag
);
static
unsigned
long
lance_probe1
(
struct
net_device
*
dev
,
struct
lance_addr
*
init_rec
);
static
int
lance_open
(
struct
net_device
*
dev
);
...
...
@@ -406,7 +404,8 @@ struct net_device * __init atarilance_probe(int unit)
/* Derived from hwreg_present() in atari/config.c: */
static
int
__init
addr_accessible
(
volatile
void
*
regp
,
int
wordflag
,
int
writeflag
)
static
noinline
int
__init
addr_accessible
(
volatile
void
*
regp
,
int
wordflag
,
int
writeflag
)
{
int
ret
;
long
flags
;
...
...
drivers/net/e100.c
浏览文件 @
255333c1
...
...
@@ -2782,16 +2782,13 @@ static void __devexit e100_remove(struct pci_dev *pdev)
}
}
#ifdef CONFIG_PM
static
int
e100_suspend
(
struct
pci_dev
*
pdev
,
pm_message_t
state
)
{
struct
net_device
*
netdev
=
pci_get_drvdata
(
pdev
);
struct
nic
*
nic
=
netdev_priv
(
netdev
);
if
(
netif_running
(
netdev
))
napi_disable
(
&
nic
->
napi
);
del_timer_sync
(
&
nic
->
watchdog
);
netif_carrier_off
(
nic
->
netdev
);
e100_down
(
nic
);
netif_device_detach
(
netdev
);
pci_save_state
(
pdev
);
...
...
@@ -2804,14 +2801,13 @@ static int e100_suspend(struct pci_dev *pdev, pm_message_t state)
pci_enable_wake
(
pdev
,
PCI_D3cold
,
0
);
}
free_irq
(
pdev
->
irq
,
netdev
);
pci_disable_device
(
pdev
);
pci_set_power_state
(
pdev
,
PCI_D3hot
);
return
0
;
}
#ifdef CONFIG_PM
static
int
e100_resume
(
struct
pci_dev
*
pdev
)
{
struct
net_device
*
netdev
=
pci_get_drvdata
(
pdev
);
...
...
@@ -2832,26 +2828,7 @@ static int e100_resume(struct pci_dev *pdev)
static
void
e100_shutdown
(
struct
pci_dev
*
pdev
)
{
struct
net_device
*
netdev
=
pci_get_drvdata
(
pdev
);
struct
nic
*
nic
=
netdev_priv
(
netdev
);
if
(
netif_running
(
netdev
))
napi_disable
(
&
nic
->
napi
);
del_timer_sync
(
&
nic
->
watchdog
);
netif_carrier_off
(
nic
->
netdev
);
if
((
nic
->
flags
&
wol_magic
)
|
e100_asf
(
nic
))
{
pci_enable_wake
(
pdev
,
PCI_D3hot
,
1
);
pci_enable_wake
(
pdev
,
PCI_D3cold
,
1
);
}
else
{
pci_enable_wake
(
pdev
,
PCI_D3hot
,
0
);
pci_enable_wake
(
pdev
,
PCI_D3cold
,
0
);
}
free_irq
(
pdev
->
irq
,
netdev
);
pci_disable_device
(
pdev
);
pci_set_power_state
(
pdev
,
PCI_D3hot
);
e100_suspend
(
pdev
,
PMSG_SUSPEND
);
}
/* ------------------ PCI Error Recovery infrastructure -------------- */
...
...
drivers/net/ixgbe/ixgbe_main.c
浏览文件 @
255333c1
...
...
@@ -2133,7 +2133,7 @@ static void ixgbe_watchdog(unsigned long data)
(
link_speed
==
IXGBE_LINK_SPEED_10GB_FULL
?
"10 Gbps"
:
(
link_speed
==
IXGBE_LINK_SPEED_1GB_FULL
?
"1 G
pb
s"
:
"unknown speed"
)),
"1 G
bp
s"
:
"unknown speed"
)),
((
FLOW_RX
&&
FLOW_TX
)
?
"RX/TX"
:
(
FLOW_RX
?
"RX"
:
(
FLOW_TX
?
"TX"
:
"None"
))));
...
...
drivers/net/mv643xx_eth.c
浏览文件 @
255333c1
...
...
@@ -2104,6 +2104,7 @@ MODULE_LICENSE("GPL");
MODULE_AUTHOR
(
"Rabeeh Khoury, Assaf Hoffman, Matthew Dharm, Manish Lachwani"
" and Dale Farnsworth"
);
MODULE_DESCRIPTION
(
"Ethernet driver for Marvell MV643XX"
);
MODULE_ALIAS
(
"platform:mv643xx_eth"
);
/*
* The second part is the low level driver of the gigE ethernet ports.
...
...
drivers/net/pcmcia/axnet_cs.c
浏览文件 @
255333c1
...
...
@@ -1268,7 +1268,7 @@ static irqreturn_t ax_interrupt(int irq, void *dev_id)
}
}
if
(
interrupts
&&
ei_debug
)
if
(
interrupts
&&
ei_debug
>
3
)
{
handled
=
1
;
if
(
nr_serviced
>=
MAX_SERVICE
)
...
...
drivers/net/phy/Kconfig
浏览文件 @
255333c1
...
...
@@ -67,6 +67,7 @@ config REALTEK_PHY
config FIXED_PHY
bool "Driver for MDIO Bus/PHY emulation with fixed speed/link PHYs"
depends on PHYLIB=y
---help---
Adds the platform "fixed" MDIO Bus to cover the boards that use
PHYs that are not connected to the real MDIO bus.
...
...
drivers/net/phy/davicom.c
浏览文件 @
255333c1
...
...
@@ -37,6 +37,7 @@
#define MII_DM9161_SCR 0x10
#define MII_DM9161_SCR_INIT 0x0610
#define MII_DM9161_SCR_RMII 0x0100
/* DM9161 Interrupt Register */
#define MII_DM9161_INTR 0x15
...
...
@@ -103,7 +104,7 @@ static int dm9161_config_aneg(struct phy_device *phydev)
static
int
dm9161_config_init
(
struct
phy_device
*
phydev
)
{
int
err
;
int
err
,
temp
;
/* Isolate the PHY */
err
=
phy_write
(
phydev
,
MII_BMCR
,
BMCR_ISOLATE
);
...
...
@@ -111,9 +112,19 @@ static int dm9161_config_init(struct phy_device *phydev)
if
(
err
<
0
)
return
err
;
/* Do not bypass the scrambler/descrambler */
err
=
phy_write
(
phydev
,
MII_DM9161_SCR
,
MII_DM9161_SCR_INIT
);
switch
(
phydev
->
interface
)
{
case
PHY_INTERFACE_MODE_MII
:
temp
=
MII_DM9161_SCR_INIT
;
break
;
case
PHY_INTERFACE_MODE_RMII
:
temp
=
MII_DM9161_SCR_INIT
|
MII_DM9161_SCR_RMII
;
break
;
default:
return
-
EINVAL
;
}
/* Do not bypass the scrambler/descrambler */
err
=
phy_write
(
phydev
,
MII_DM9161_SCR
,
temp
);
if
(
err
<
0
)
return
err
;
...
...
drivers/net/pppol2tp.c
浏览文件 @
255333c1
...
...
@@ -455,6 +455,7 @@ static void pppol2tp_recv_dequeue(struct pppol2tp_session *session)
skb_queue_len
(
&
session
->
reorder_q
));
__skb_unlink
(
skb
,
&
session
->
reorder_q
);
kfree_skb
(
skb
);
sock_put
(
session
->
sock
);
continue
;
}
...
...
@@ -1110,6 +1111,8 @@ static void pppol2tp_tunnel_closeall(struct pppol2tp_tunnel *tunnel)
for
(
hash
=
0
;
hash
<
PPPOL2TP_HASH_SIZE
;
hash
++
)
{
again:
hlist_for_each_safe
(
walk
,
tmp
,
&
tunnel
->
session_hlist
[
hash
])
{
struct
sk_buff
*
skb
;
session
=
hlist_entry
(
walk
,
struct
pppol2tp_session
,
hlist
);
sk
=
session
->
sock
;
...
...
@@ -1138,7 +1141,10 @@ static void pppol2tp_tunnel_closeall(struct pppol2tp_tunnel *tunnel)
/* Purge any queued data */
skb_queue_purge
(
&
sk
->
sk_receive_queue
);
skb_queue_purge
(
&
sk
->
sk_write_queue
);
skb_queue_purge
(
&
session
->
reorder_q
);
while
((
skb
=
skb_dequeue
(
&
session
->
reorder_q
)))
{
kfree_skb
(
skb
);
sock_put
(
sk
);
}
release_sock
(
sk
);
sock_put
(
sk
);
...
...
drivers/net/s2io.c
浏览文件 @
255333c1
...
...
@@ -1088,7 +1088,7 @@ static int s2io_print_pci_mode(struct s2io_nic *nic)
* '-1' on failure
*/
int
init_tti
(
struct
s2io_nic
*
nic
,
int
link
)
static
int
init_tti
(
struct
s2io_nic
*
nic
,
int
link
)
{
struct
XENA_dev_config
__iomem
*
bar0
=
nic
->
bar0
;
register
u64
val64
=
0
;
...
...
drivers/net/tulip/de2104x.c
浏览文件 @
255333c1
...
...
@@ -910,7 +910,8 @@ static void de_set_media (struct de_private *de)
unsigned
media
=
de
->
media_type
;
u32
macmode
=
dr32
(
MacMode
);
BUG_ON
(
de_is_running
(
de
));
if
(
de_is_running
(
de
))
printk
(
KERN_WARNING
"%s: chip is running while changing media!
\n
"
,
de
->
dev
->
name
);
if
(
de
->
de21040
)
dw32
(
CSR11
,
FULL_DUPLEX_MAGIC
);
...
...
drivers/net/tun.c
浏览文件 @
255333c1
...
...
@@ -663,7 +663,11 @@ static int tun_chr_ioctl(struct inode *inode, struct file *file,
case
SIOCSIFHWADDR
:
{
/* try to set the actual net device's hw address */
int
ret
=
dev_set_mac_address
(
tun
->
dev
,
&
ifr
.
ifr_hwaddr
);
int
ret
;
rtnl_lock
();
ret
=
dev_set_mac_address
(
tun
->
dev
,
&
ifr
.
ifr_hwaddr
);
rtnl_unlock
();
if
(
ret
==
0
)
{
/** Set the character device's hardware address. This is used when
...
...
drivers/net/wireless/b43legacy/main.c
浏览文件 @
255333c1
...
...
@@ -3870,7 +3870,7 @@ static void b43legacy_print_driverinfo(void)
#ifdef CONFIG_B43LEGACY_DMA
feat_dma
=
"D"
;
#endif
printk
(
KERN_INFO
"Broadcom 43xx driver loaded "
printk
(
KERN_INFO
"Broadcom 43xx
-legacy
driver loaded "
"[ Features: %s%s%s%s%s, Firmware-ID: "
B43legacy_SUPPORTED_FIRMWARE_ID
" ]
\n
"
,
feat_pci
,
feat_leds
,
feat_rfkill
,
feat_pio
,
feat_dma
);
...
...
drivers/net/wireless/libertas/cmdresp.c
浏览文件 @
255333c1
...
...
@@ -562,9 +562,7 @@ int lbs_process_rx_command(struct lbs_private *priv)
}
resp
=
(
void
*
)
priv
->
upld_buf
;
curcmd
=
le16_to_cpu
(
resp
->
command
);
curcmd
=
le16_to_cpu
(
priv
->
cur_cmd
->
cmdbuf
->
command
);
respcmd
=
le16_to_cpu
(
resp
->
command
);
result
=
le16_to_cpu
(
resp
->
result
);
...
...
@@ -572,9 +570,9 @@ int lbs_process_rx_command(struct lbs_private *priv)
respcmd
,
le16_to_cpu
(
resp
->
seqnum
),
priv
->
upld_len
,
jiffies
);
lbs_deb_hex
(
LBS_DEB_CMD
,
"CMD_RESP"
,
(
void
*
)
resp
,
priv
->
upld_len
);
if
(
resp
->
seqnum
!=
resp
->
seqnum
)
{
if
(
resp
->
seqnum
!=
priv
->
cur_cmd
->
cmdbuf
->
seqnum
)
{
lbs_pr_info
(
"Received CMD_RESP with invalid sequence %d (expected %d)
\n
"
,
le16_to_cpu
(
resp
->
seqnum
),
le16_to_cpu
(
resp
->
seqnum
));
le16_to_cpu
(
resp
->
seqnum
),
le16_to_cpu
(
priv
->
cur_cmd
->
cmdbuf
->
seqnum
));
spin_unlock_irqrestore
(
&
priv
->
driver_lock
,
flags
);
ret
=
-
1
;
goto
done
;
...
...
drivers/net/wireless/p54common.c
浏览文件 @
255333c1
...
...
@@ -206,18 +206,23 @@ int p54_parse_eeprom(struct ieee80211_hw *dev, void *eeprom, int len)
struct
p54_common
*
priv
=
dev
->
priv
;
struct
eeprom_pda_wrap
*
wrap
=
NULL
;
struct
pda_entry
*
entry
;
int
i
=
0
;
unsigned
int
data_len
,
entry_len
;
void
*
tmp
;
int
err
;
u8
*
end
=
(
u8
*
)
eeprom
+
len
;
wrap
=
(
struct
eeprom_pda_wrap
*
)
eeprom
;
entry
=
(
void
*
)
wrap
->
data
+
wrap
->
len
;
i
+=
2
;
i
+=
le16_to_cpu
(
entry
->
len
)
*
2
;
while
(
i
<
len
)
{
entry
=
(
void
*
)
wrap
->
data
+
le16_to_cpu
(
wrap
->
len
)
;
/* verify that at least the entry length/code fits */
while
(
(
u8
*
)
entry
<=
end
-
sizeof
(
*
entry
)
)
{
entry_len
=
le16_to_cpu
(
entry
->
len
);
data_len
=
((
entry_len
-
1
)
<<
1
);
/* abort if entry exceeds whole structure */
if
((
u8
*
)
entry
+
sizeof
(
*
entry
)
+
data_len
>
end
)
break
;
switch
(
le16_to_cpu
(
entry
->
code
))
{
case
PDR_MAC_ADDRESS
:
SET_IEEE80211_PERM_ADDR
(
dev
,
entry
->
data
);
...
...
@@ -289,7 +294,8 @@ int p54_parse_eeprom(struct ieee80211_hw *dev, void *eeprom, int len)
priv
->
version
=
*
(
u8
*
)(
entry
->
data
+
1
);
break
;
case
PDR_END
:
i
=
len
;
/* make it overrun */
entry_len
=
len
;
break
;
default:
printk
(
KERN_INFO
"p54: unknown eeprom code : 0x%x
\n
"
,
...
...
@@ -298,8 +304,6 @@ int p54_parse_eeprom(struct ieee80211_hw *dev, void *eeprom, int len)
}
entry
=
(
void
*
)
entry
+
(
entry_len
+
1
)
*
2
;
i
+=
2
;
i
+=
entry_len
*
2
;
}
if
(
!
priv
->
iq_autocal
||
!
priv
->
output_limit
||
!
priv
->
curve_data
)
{
...
...
drivers/net/wireless/p54common.h
浏览文件 @
255333c1
...
...
@@ -53,10 +53,10 @@ struct pda_entry {
}
__attribute__
((
packed
));
struct
eeprom_pda_wrap
{
u
32
magic
;
u
16
pad
;
u
16
len
;
u
32
arm_opcode
;
__le
32
magic
;
__le
16
pad
;
__le
16
len
;
__le
32
arm_opcode
;
u8
data
[
0
];
}
__attribute__
((
packed
));
...
...
drivers/net/wireless/rndis_wlan.c
浏览文件 @
255333c1
...
...
@@ -260,7 +260,7 @@ struct NDIS_802_11_KEY {
__le32
KeyLength
;
u8
Bssid
[
6
];
u8
Padding
[
6
];
__le64
KeyRSC
;
u8
KeyRSC
[
8
]
;
u8
KeyMaterial
[
32
];
}
__attribute__
((
packed
));
...
...
@@ -1508,7 +1508,7 @@ static int rndis_iw_set_encode_ext(struct net_device *dev,
struct
usbnet
*
usbdev
=
dev
->
priv
;
struct
rndis_wext_private
*
priv
=
get_rndis_wext_priv
(
usbdev
);
struct
NDIS_802_11_KEY
ndis_key
;
int
i
,
keyidx
,
ret
;
int
keyidx
,
ret
;
u8
*
addr
;
keyidx
=
wrqu
->
encoding
.
flags
&
IW_ENCODE_INDEX
;
...
...
@@ -1543,9 +1543,7 @@ static int rndis_iw_set_encode_ext(struct net_device *dev,
ndis_key
.
KeyIndex
=
cpu_to_le32
(
keyidx
);
if
(
ext
->
ext_flags
&
IW_ENCODE_EXT_RX_SEQ_VALID
)
{
for
(
i
=
0
;
i
<
6
;
i
++
)
ndis_key
.
KeyRSC
|=
cpu_to_le64
(
ext
->
rx_seq
[
i
]
<<
(
i
*
8
));
memcpy
(
ndis_key
.
KeyRSC
,
ext
->
rx_seq
,
6
);
ndis_key
.
KeyIndex
|=
cpu_to_le32
(
1
<<
29
);
}
...
...
drivers/ssb/driver_pcicore.c
浏览文件 @
255333c1
...
...
@@ -111,7 +111,10 @@ static void __init ssb_fixup_pcibridge(struct pci_dev *dev)
/* Enable PCI bridge bus mastering and memory space */
pci_set_master
(
dev
);
pcibios_enable_device
(
dev
,
~
0
);
if
(
pcibios_enable_device
(
dev
,
~
0
)
<
0
)
{
ssb_printk
(
KERN_ERR
"PCI: SSB bridge enable failed
\n
"
);
return
;
}
/* Enable PCI bridge BAR1 prefetch and burst */
pci_write_config_dword
(
dev
,
SSB_BAR1_CONTROL
,
3
);
...
...
include/linux/netpoll.h
浏览文件 @
255333c1
...
...
@@ -25,6 +25,7 @@ struct netpoll {
struct
netpoll_info
{
atomic_t
refcnt
;
int
rx_flags
;
spinlock_t
rx_lock
;
struct
netpoll
*
rx_np
;
/* netpoll that registered an rx_hook */
struct
sk_buff_head
arp_tx
;
/* list of arp requests to reply to */
...
...
@@ -50,12 +51,12 @@ static inline int netpoll_rx(struct sk_buff *skb)
unsigned
long
flags
;
int
ret
=
0
;
if
(
!
npinfo
||
!
npinfo
->
rx_np
)
if
(
!
npinfo
||
(
!
npinfo
->
rx_np
&&
!
npinfo
->
rx_flags
)
)
return
0
;
spin_lock_irqsave
(
&
npinfo
->
rx_lock
,
flags
);
/* check rx_
np
again with the lock held */
if
(
npinfo
->
rx_
np
&&
__netpoll_rx
(
skb
))
/* check rx_
flags
again with the lock held */
if
(
npinfo
->
rx_
flags
&&
__netpoll_rx
(
skb
))
ret
=
1
;
spin_unlock_irqrestore
(
&
npinfo
->
rx_lock
,
flags
);
...
...
include/net/inet_sock.h
浏览文件 @
255333c1
...
...
@@ -175,7 +175,8 @@ extern void build_ehash_secret(void);
static
inline
unsigned
int
inet_ehashfn
(
const
__be32
laddr
,
const
__u16
lport
,
const
__be32
faddr
,
const
__be16
fport
)
{
return
jhash_2words
((
__force
__u32
)
laddr
^
(
__force
__u32
)
faddr
,
return
jhash_3words
((
__force
__u32
)
laddr
,
(
__force
__u32
)
faddr
,
((
__u32
)
lport
)
<<
16
|
(
__force
__u32
)
fport
,
inet_ehash_secret
);
}
...
...
net/bluetooth/l2cap.c
浏览文件 @
255333c1
...
...
@@ -417,7 +417,8 @@ static void l2cap_conn_del(struct hci_conn *hcon, int err)
l2cap_sock_kill
(
sk
);
}
del_timer_sync
(
&
conn
->
info_timer
);
if
(
conn
->
info_state
&
L2CAP_INFO_FEAT_MASK_REQ_SENT
)
del_timer_sync
(
&
conn
->
info_timer
);
hcon
->
l2cap_data
=
NULL
;
kfree
(
conn
);
...
...
net/core/neighbour.c
浏览文件 @
255333c1
...
...
@@ -839,7 +839,7 @@ static void neigh_timer_handler(unsigned long arg)
struct
sk_buff
*
skb
=
skb_peek
(
&
neigh
->
arp_queue
);
/* keep skb alive even if arp_queue overflows */
if
(
skb
)
skb
_get
(
skb
);
skb
=
skb_copy
(
skb
,
GFP_ATOMIC
);
write_unlock
(
&
neigh
->
lock
);
neigh
->
ops
->
solicit
(
neigh
,
skb
);
atomic_inc
(
&
neigh
->
probes
);
...
...
net/core/netpoll.c
浏览文件 @
255333c1
...
...
@@ -39,6 +39,8 @@ static struct sk_buff_head skb_pool;
static
atomic_t
trapped
;
#define USEC_PER_POLL 50
#define NETPOLL_RX_ENABLED 1
#define NETPOLL_RX_DROP 2
#define MAX_SKB_SIZE \
(MAX_UDP_CHUNK + sizeof(struct udphdr) + \
...
...
@@ -126,11 +128,13 @@ static int poll_one_napi(struct netpoll_info *npinfo,
if
(
!
test_bit
(
NAPI_STATE_SCHED
,
&
napi
->
state
))
return
budget
;
npinfo
->
rx_flags
|=
NETPOLL_RX_DROP
;
atomic_inc
(
&
trapped
);
work
=
napi
->
poll
(
napi
,
budget
);
atomic_dec
(
&
trapped
);
npinfo
->
rx_flags
&=
~
NETPOLL_RX_DROP
;
return
budget
-
work
;
}
...
...
@@ -470,7 +474,7 @@ int __netpoll_rx(struct sk_buff *skb)
if
(
skb
->
dev
->
type
!=
ARPHRD_ETHER
)
goto
out
;
/*
if receive ARP during middle of NAPI poll, then queue
*/
/*
check if netpoll clients need ARP
*/
if
(
skb
->
protocol
==
htons
(
ETH_P_ARP
)
&&
atomic_read
(
&
trapped
))
{
skb_queue_tail
(
&
npi
->
arp_tx
,
skb
);
...
...
@@ -532,9 +536,6 @@ int __netpoll_rx(struct sk_buff *skb)
return
1
;
out:
/* If packet received while already in poll then just
* silently drop.
*/
if
(
atomic_read
(
&
trapped
))
{
kfree_skb
(
skb
);
return
1
;
...
...
@@ -673,6 +674,7 @@ int netpoll_setup(struct netpoll *np)
goto
release
;
}
npinfo
->
rx_flags
=
0
;
npinfo
->
rx_np
=
NULL
;
spin_lock_init
(
&
npinfo
->
rx_lock
);
...
...
@@ -754,6 +756,7 @@ int netpoll_setup(struct netpoll *np)
if
(
np
->
rx_hook
)
{
spin_lock_irqsave
(
&
npinfo
->
rx_lock
,
flags
);
npinfo
->
rx_flags
|=
NETPOLL_RX_ENABLED
;
npinfo
->
rx_np
=
np
;
spin_unlock_irqrestore
(
&
npinfo
->
rx_lock
,
flags
);
}
...
...
@@ -795,6 +798,7 @@ void netpoll_cleanup(struct netpoll *np)
if
(
npinfo
->
rx_np
==
np
)
{
spin_lock_irqsave
(
&
npinfo
->
rx_lock
,
flags
);
npinfo
->
rx_np
=
NULL
;
npinfo
->
rx_flags
&=
~
NETPOLL_RX_ENABLED
;
spin_unlock_irqrestore
(
&
npinfo
->
rx_lock
,
flags
);
}
...
...
net/ipv4/Kconfig
浏览文件 @
255333c1
...
...
@@ -343,7 +343,7 @@ config INET_ESP
tristate "IP: ESP transformation"
select XFRM
select CRYPTO
select CRYPTO_A
EAD
select CRYPTO_A
UTHENC
select CRYPTO_HMAC
select CRYPTO_MD5
select CRYPTO_CBC
...
...
net/ipv4/ipconfig.c
浏览文件 @
255333c1
...
...
@@ -750,9 +750,9 @@ static void __init ic_bootp_send_if(struct ic_device *d, unsigned long jiffies_d
printk
(
"Unknown ARP type 0x%04x for device %s
\n
"
,
dev
->
type
,
dev
->
name
);
b
->
htype
=
dev
->
type
;
/* can cause undefined behavior */
}
/* server_ip and your_ip address are both already zero per RFC2131 */
b
->
hlen
=
dev
->
addr_len
;
b
->
your_ip
=
NONE
;
b
->
server_ip
=
NONE
;
memcpy
(
b
->
hw_addr
,
dev
->
dev_addr
,
dev
->
addr_len
);
b
->
secs
=
htons
(
jiffies_diff
/
HZ
);
b
->
xid
=
d
->
xid
;
...
...
net/ipv4/tcp_bic.c
浏览文件 @
255333c1
/*
* Binary Increase Congestion control for TCP
*
* Home page:
* http://netsrv.csc.ncsu.edu/twiki/bin/view/Main/BIC
* This is from the implementation of BICTCP in
* Lison-Xu, Kahaled Harfoush, and Injong Rhee.
* "Binary Increase Congestion Control for Fast, Long Distance
* Networks" in InfoComm 2004
* Available from:
* http://
www.csc.ncsu.edu/faculty/rhee
/export/bitcp.pdf
* http://
netsrv.csc.ncsu.edu
/export/bitcp.pdf
*
* Unless BIC is enabled and congestion window is large
* this behaves the same as the original Reno.
...
...
net/ipv4/tcp_input.c
浏览文件 @
255333c1
...
...
@@ -1367,7 +1367,7 @@ static struct sk_buff *tcp_sacktag_walk(struct sk_buff *skb, struct sock *sk,
* a normal way
*/
static
struct
sk_buff
*
tcp_sacktag_skip
(
struct
sk_buff
*
skb
,
struct
sock
*
sk
,
u32
skip_to_seq
)
u32
skip_to_seq
,
int
*
fack_count
)
{
tcp_for_write_queue_from
(
skb
,
sk
)
{
if
(
skb
==
tcp_send_head
(
sk
))
...
...
@@ -1375,6 +1375,8 @@ static struct sk_buff *tcp_sacktag_skip(struct sk_buff *skb, struct sock *sk,
if
(
!
before
(
TCP_SKB_CB
(
skb
)
->
end_seq
,
skip_to_seq
))
break
;
*
fack_count
+=
tcp_skb_pcount
(
skb
);
}
return
skb
;
}
...
...
@@ -1390,7 +1392,7 @@ static struct sk_buff *tcp_maybe_skipping_dsack(struct sk_buff *skb,
return
skb
;
if
(
before
(
next_dup
->
start_seq
,
skip_to_seq
))
{
skb
=
tcp_sacktag_skip
(
skb
,
sk
,
next_dup
->
start_seq
);
skb
=
tcp_sacktag_skip
(
skb
,
sk
,
next_dup
->
start_seq
,
fack_count
);
tcp_sacktag_walk
(
skb
,
sk
,
NULL
,
next_dup
->
start_seq
,
next_dup
->
end_seq
,
1
,
fack_count
,
reord
,
flag
);
...
...
@@ -1537,7 +1539,8 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb,
/* Head todo? */
if
(
before
(
start_seq
,
cache
->
start_seq
))
{
skb
=
tcp_sacktag_skip
(
skb
,
sk
,
start_seq
);
skb
=
tcp_sacktag_skip
(
skb
,
sk
,
start_seq
,
&
fack_count
);
skb
=
tcp_sacktag_walk
(
skb
,
sk
,
next_dup
,
start_seq
,
cache
->
start_seq
,
...
...
@@ -1565,7 +1568,8 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb,
goto
walk
;
}
skb
=
tcp_sacktag_skip
(
skb
,
sk
,
cache
->
end_seq
);
skb
=
tcp_sacktag_skip
(
skb
,
sk
,
cache
->
end_seq
,
&
fack_count
);
/* Check overlap against next cached too (past this one already) */
cache
++
;
continue
;
...
...
@@ -1577,7 +1581,7 @@ tcp_sacktag_write_queue(struct sock *sk, struct sk_buff *ack_skb,
break
;
fack_count
=
tp
->
fackets_out
;
}
skb
=
tcp_sacktag_skip
(
skb
,
sk
,
start_seq
);
skb
=
tcp_sacktag_skip
(
skb
,
sk
,
start_seq
,
&
fack_count
);
walk:
skb
=
tcp_sacktag_walk
(
skb
,
sk
,
next_dup
,
start_seq
,
end_seq
,
...
...
net/ipv6/Kconfig
浏览文件 @
255333c1
...
...
@@ -85,7 +85,7 @@ config INET6_ESP
depends on IPV6
select XFRM
select CRYPTO
select CRYPTO_A
EAD
select CRYPTO_A
UTHENC
select CRYPTO_HMAC
select CRYPTO_MD5
select CRYPTO_CBC
...
...
net/irda/ircomm/ircomm_core.c
浏览文件 @
255333c1
...
...
@@ -76,9 +76,11 @@ static int __init ircomm_init(void)
#ifdef CONFIG_PROC_FS
{
struct
proc_dir_entry
*
ent
;
ent
=
create_proc_entry
(
"ircomm"
,
0
,
proc_irda
);
if
(
ent
)
ent
->
proc_fops
=
&
ircomm_proc_fops
;
ent
=
proc_create
(
"ircomm"
,
0
,
proc_irda
,
&
ircomm_proc_fops
);
if
(
!
ent
)
{
printk
(
KERN_ERR
"ircomm_init: can't create /proc entry!
\n
"
);
return
-
ENODEV
;
}
}
#endif
/* CONFIG_PROC_FS */
...
...
net/irda/irlan/irlan_common.c
浏览文件 @
255333c1
...
...
@@ -128,13 +128,11 @@ static int __init irlan_init(void)
#ifdef CONFIG_PROC_FS
{
struct
proc_dir_entry
*
proc
;
proc
=
create_proc_entry
(
"irlan"
,
0
,
proc_irda
);
proc
=
proc_create
(
"irlan"
,
0
,
proc_irda
,
&
irlan_fops
);
if
(
!
proc
)
{
printk
(
KERN_ERR
"irlan_init: can't create /proc entry!
\n
"
);
return
-
ENODEV
;
}
proc
->
proc_fops
=
&
irlan_fops
;
}
#endif
/* CONFIG_PROC_FS */
...
...
net/irda/irproc.c
浏览文件 @
255333c1
...
...
@@ -72,11 +72,9 @@ void __init irda_proc_register(void)
return
;
proc_irda
->
owner
=
THIS_MODULE
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
irda_dirs
);
i
++
)
{
d
=
create_proc_entry
(
irda_dirs
[
i
].
name
,
0
,
proc_irda
);
if
(
d
)
d
->
proc_fops
=
irda_dirs
[
i
].
fops
;
}
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
irda_dirs
);
i
++
)
d
=
proc_create
(
irda_dirs
[
i
].
name
,
0
,
proc_irda
,
irda_dirs
[
i
].
fops
);
}
/*
...
...
net/iucv/iucv.c
浏览文件 @
255333c1
...
...
@@ -621,7 +621,6 @@ static int iucv_sever_pathid(u16 pathid, u8 userdata[16])
return
iucv_call_b2f0
(
IUCV_SEVER
,
parm
);
}
#ifdef CONFIG_SMP
/**
* __iucv_cleanup_queue
* @dummy: unused dummy argument
...
...
@@ -632,7 +631,6 @@ static int iucv_sever_pathid(u16 pathid, u8 userdata[16])
static
void
__iucv_cleanup_queue
(
void
*
dummy
)
{
}
#endif
/**
* iucv_cleanup_queue
...
...
net/sctp/proc.c
浏览文件 @
255333c1
...
...
@@ -256,12 +256,10 @@ int __init sctp_eps_proc_init(void)
{
struct
proc_dir_entry
*
p
;
p
=
create_proc_entry
(
"eps"
,
S_IRUGO
,
proc_net_sctp
);
p
=
proc_create
(
"eps"
,
S_IRUGO
,
proc_net_sctp
,
&
sctp_eps_seq_fops
);
if
(
!
p
)
return
-
ENOMEM
;
p
->
proc_fops
=
&
sctp_eps_seq_fops
;
return
0
;
}
...
...
@@ -375,12 +373,11 @@ int __init sctp_assocs_proc_init(void)
{
struct
proc_dir_entry
*
p
;
p
=
create_proc_entry
(
"assocs"
,
S_IRUGO
,
proc_net_sctp
);
p
=
proc_create
(
"assocs"
,
S_IRUGO
,
proc_net_sctp
,
&
sctp_assocs_seq_fops
);
if
(
!
p
)
return
-
ENOMEM
;
p
->
proc_fops
=
&
sctp_assocs_seq_fops
;
return
0
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录